java angular 导出

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();    
       }  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值