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