easypoi多sheet导出
以前一直接触的是单sheet导出,这次的需求换成了多sheet导出,算是一个难点所以得记录一下
底层关键的代码就是:
private static void defaultExport(List<Map<String, Object>> list, String fileName, HttpServletResponse response) throws IOException { Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF); downLoadExcel(fileName, response, workbook); }
业务层:
1. 准备好需要导出的sheetlist
2.创建Map,将title,entity,data(要导出的数据)放入Map
3. 将map塞入sheetList
有几个sheet就循环多少次,这里的代码可以做简化
List<Map<String, Object>> sheetsList = new ArrayList<>(); // 第一个sheet页sheet得名称 ExportParams deptParams = new ExportParams(); deptParams.setSheetName("科室接诊数据报表"); //创建sheet1使用多map Map<String,Object> deptMap = new HashMap<>(); //title的参数为ExportParams类型 deptMap.put("title",deptParams); //模版导出对应的实体类型 deptMap.put("entity",ExportDepartDto.class); //sheet中要填充的数据 deptMap.put("data",exportDepartDtos); sheetsList.add(deptMap); ExportParams docParams = new ExportParams(); docParams.setSheetName("医生接诊数据报表"); Map<String,Object> docMap = new HashMap<>(); docMap.put("title",docParams); docMap.put("entity",ExportDotorDto.class); docMap.put("data",exportDotorDtos); sheetsList.add(docMap); //导出 //public static void exportExcel(List<Map<String, Object>> list, String fileName, HttpServletResponse response) try { ExcelUtils.exportExcel(sheetsList,"科室医生接诊数据报表",response); } catch (IOException e) { log.error("导出报错",e); }
posted on 2023-02-28 12:01 rachelgarden 阅读(851) 评论(0) 编辑 收藏 举报