angular js端
$http({
method: "GET",
url: "/api/query/excel",
headers: {
'Authorization': 'Bearer ' + $.cookie('token')
},
params: {
pageSize: 10
},
responseType: 'arraybuffer' (要添加)
}).
then(function success(data) {
console.log(data);
//------------start
var blob = new Blob([data.data], {
type: "application/vnd.ms-excel"
});
var objectUrl = URL.createObjectURL(blob);
var a = document.createElement('a');
document.body.appendChild(a);
a.setAttribute('style', 'display:none');
a.setAttribute('href', objectUrl);
var filename = "报警数据导出报表.xls";
a.setAttribute('download', filename);
a.click();
URL.revokeObjectURL(objectUrl);
//----------------end----------------
},
function error(resp) {
}
java 端
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet("报警数据导出");
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = sheet.createRow((int) 0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue("设备名称");
cell.setCellStyle(style);
cell = row.createCell((short) 1);
cell.setCellValue("报警时间");
cell.setCellStyle(style);
cell = row.createCell((short) 2);
cell.setCellValue("监测项");
cell.setCellStyle(style);
cell = row.createCell((short) 3);
cell.setCellValue("监测数据");
cell.setCellStyle(style);
cell = row.createCell((short) 4);
cell.setCellValue("类别");
cell.setCellStyle(style);
cell = row.createCell((short) 5);
cell.setCellValue("等级");
cell.setCellStyle(style);
cell = row.createCell((short) 6);
cell.setCellValue("故障码");
cell.setCellStyle(style);
cell = row.createCell((short) 7);
cell.setCellValue("故障原因");
cell.setCellStyle(style);
// 第五步,写入实体数据 实际应用中这些数据从数据库得到,
// List list = CreateSimpleExcelToDisk.getMember();
for (int i = 0; i < list.size(); i++)
{
row = sheet.createRow((int) i + 1);
Alarm alarm = (Alarm) list.get(i);
// 第四步,创建单元格,并设置值
row.createCell((short) 0).setCellValue(alarm.getDeviceName());
row.createCell((short) 1).setCellValue(alarm.getaStartTs());
row.createCell((short) 2).setCellValue(alarm.getaAlarmRules());
row.createCell((short) 3).setCellValue(alarm.getaAlarmValues());
row.createCell((short) 4).setCellValue(alarm.getaType());
row.createCell((short) 5).setCellValue(severity);
row.createCell((short) 6).setCellValue(alarm.getaFaultCode());
row.createCell((short) 7).setCellValue(fFaultParttern);
}
// 第六步,将文件存到指定位置
try
{
response.setContentType("application/vnd.ms-excel; charset=utf-8");
response.setHeader("Content-Disposition","attachment;filename=123");
response.setCharacterEncoding("utf-8");
OutputStream os=response.getOutputStream();
// FileOutputStream fout = new FileOutputStream("C:/360/baojing.xls");
wb.write(os);
os.close();
}
catch (Exception e)
{
e.printStackTrace();
}