java大量数据导出到Excel

在导出大量数据时,使用 easyexcel 导出数据

由于excel一个sheet页只能装1048576行数据,所以要把数据存到多个sheet页中:

用ExcelUtil数据量太大直接爆了,所以还是手写把。

废话少说,看代码吧。

int num=1000000; 
try {
    //设置响应头、导出文件名等
   response.setContentType("application/octet-stream; charset=utf-8");
   response.setHeader("Content-disposition","attachmentl;filename=" +"导出数据.xlsx");
    
   ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), UsermonExcel.class).build();
   //查询总条数
   int selcetcount = usermonDayService.selcetcount2(usermon_day);

   int sheetNum = selcetcount%num ==0 ? selcetcount/num:selcetcount/num+1;
   for (int i=0;i<sheetNum;i++){
      List<UsermonDayEntity> selcetcondition = usermonDayService.selectexport(i,usermon_day);
      List<UsermonExcel> excelList = usermonDayService.exportBaseInfo(selcetcondition);
      WriteSheet sheet = EasyExcel.writerSheet("第" + i + "页").build();
      excelWriter.write(excelList,sheet);
   }
//最后要关哦
   excelWriter.finish();
   log.info("导出成功");
}catch (Exception e){
   System.out.println("导出失败,错误" +e);
}

萌新第一次,有问题请留言。

经验分享 程序员 微信小程序 职场和发展