51.SpringBoot+easypoi实现大数据量excel导出

文章目录

    • 一、前言
    • 二.代码实现逻辑
    • 三.总结

一、前言

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

三.总结

【51.SpringBoot easypoi实现大数据量excel导出】上面的使用是参考的网上的实现逻辑,但是其实实际使用当中的导出其实是可以进行抽象封装的,如果有需求请关注公众号参考我的下一篇【SpringBoot中大数据导出excel总结】

相关经验推荐