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);
}
萌新第一次,有问题请留言。
