文章目录
- 一、前言
- 二.代码实现逻辑
- 三.总结
一、前言
环境:SpringBoot 2.1.5.RELEASE需求: 利用springboot easypoi实现大数据量的导出excel
二.代码实现逻辑
@RequestMapping("export")public void export(HttpServletResponse response) {Map params = new HashMap<>();Workbook workbook = bigExcel(1, params, null, new ExportParams("海贼王", "海贼王"), new Page<>());ExcelExportUtil.closeExportBigExcel();downLoadExcel("海贼王.xls", response, workbook);}private Workbook bigExcel(int pageNum, Map params, Workbook workbook, ExportParams exportParams, Page page) {//分页查询数据page.setCurrent(pageNum);page.setSize(1000);page.setCondition(params);page = this.getData(sysUserService.queryPage(page));List users = FastJsonUtils.toList(FastJsonUtils.toJSONString(page.getRecords()), SysUser.class);workbook = ExcelExportUtil.exportBigExcel(exportParams, SysUser.class, users);//如果不是最后一页,递归查询if (page.getPages() > pageNum) {bigExcel(pageNum1, params, workbook, exportParams, page);}return workbook;}private void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {try {response.setCharacterEncoding("UTF-8");response.setHeader("Content-Disposition", "attachment;filename="URLEncoder.encode(fileName, "UTF-8"));response.setHeader("content-Type", "application/vnd.ms-excel");workbook.write(response.getOutputStream());} catch (IOException e) {throw new NormalException(e.getMessage());}}