天天看點

easyPOI多sheet頁導出

在這裡就上關鍵代碼了,如果有不明白的可以看我之前的文章(https://mp.csdn.net/console/editor/html/107430199)

/**
 * 多sheet導出
 * @param response 流
 * @param list 導出的資料
 * @param fileName 表頭标題名稱
 */
public static void exportMoreSheet(HttpServletResponse response,List<Map<String, Object>> list, String fileName) throws IOException {
    Workbook workbook = null;
    workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF);
    if (workbook != null) {
        downLoadExcel(fileName, response, workbook);
    }
}      

業務層

@PostMapping("/export")
@ApiOperation(value = "導出物流資訊")
public void export(@RequestBody SelectDeliveryLogisticsListParamVo param, HttpServletResponse response) {
    try{
        List<Map<String, Object>> sheetsList = new ArrayList<>();
        // 擷取物流單
        List<LogisticsExport> logisList = service.selectExportData(param);
        // 第一個sheet頁
        //置sheet得名稱
        ExportParams logisParams = new ExportParams();
        logisParams.setSheetName("物流資訊");
        // 建立sheet1使用得map
        Map<String, Object> logisExportMap = new HashMap<>();
        // title的參數為ExportParams類型,目前僅僅在ExportParams中設定了sheetName
        logisExportMap.put("title", logisParams);
        // 模版導出對應得實體類型
        logisExportMap.put("entity", LogisticsExport.class);
        // sheet中要填充得資料
        logisExportMap.put("data", logisList);

        sheetsList.add(logisExportMap);
        // 擷取物流單下面的所有的包裹資訊
        logisList.forEach(item -> {
            if (StringUtils.isNotBlank(item.getId())) {
                List<LogisticsPackInfoExport> packList = service.selectExportVehiclePackList(UserHelper.getTenantId(), item.getId());
                // 第二個sheet頁 +
                //置sheet得名稱
                ExportParams packParams = new ExportParams();
                packParams.setSheetName(item.getCode() + "-包裹資訊");
                // 建立sheet1使用得map
                Map<String, Object> packExportMap = new HashMap<>();
                // title的參數為ExportParams類型,目前僅僅在ExportParams中設定了sheetName
                packExportMap.put("title", packParams);
                // 模版導出對應得實體類型
                packExportMap.put("entity", LogisticsPackInfoExport.class);
                // sheet中要填充得資料
                packExportMap.put("data", packList);
                sheetsList.add(packExportMap);
            }
        });
        CommonExport.exportMoreSheet(response, sheetsList, "物流單");
    }catch (IOException e) {
        e.printStackTrace();
    }
}