private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams, List<ExcelRowMergeParam> mergeParams) throws IOException {
exportParams.setStyle(ExcelExportMyStylerImpl.class);
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list);
Sheet sheet = workbook.getSheetAt(0);
//四个参数依次是:起始行,终止行,起始列,终止列,index是从 0开始
mergeParams.stream().forEach(excelRowMergeParam -> {
CellRangeAddress craOne = new CellRangeAddress(excelRowMergeParam.getRowStart(), excelRowMergeParam.getRowEnd(),excelRowMergeParam.getColStart(),excelRowMergeParam.getColEnd());
sheet.addMergedRegion(craOne);
});
downLoadExcel(fileName, response, workbook);
}
list 列表数组 pojoClass数组的实体类型,filename文件名称 response 返回体 exportParams标题头 mergeParams 合并参数列表
其他不予多说 mergeParams 是批量计算的形成数组的,我这边数量较大要几万个发现速度瓶颈在于上面代码的sheet.addMergedRegion(craOne)中,一万个需要一分多钟
改为sheet.addMergedRegionUnsafe(craOne)变得贼快 两秒就好,看了里面好像需要验证一些东西,特此记录