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编辑  收藏  举报

导航