Мы создаем отчет с большим количеством записей.Поэтому мы используем JXLS с SXSSFWorkbook, чтобы разделить данные на несколько листов и сократить использование памяти:
XSSFWorkbook wb_template = new XSSFWorkbook(is);
PoiTransformer transformer = PoiTransformer.createSxssfTransformer(wb_template, 1000, false);
String sheetName = wb_template.getSheetAt(0).getSheetName();
AreaBuilder areaBuilder = new XlsCommentAreaBuilder(transformer);
List<Area> xlsAreaList = areaBuilder.build();
Area xlsArea = xlsAreaList.get(0);
transformer.getWorkbook().removeSheetAt(0);
while (pageIndex < total) {
xlsArea.applyAt(new CellRef(sheetName + " " + pageIndex + "!A1"), context);
pageIndex++;
}
Но наш отчет содержит итоговую строку, которую мы должны суммировать в 2 столбца.Мы вызываем processFormulas после вызова applyAt:
xlsArea.processFormulas();
Это обработает каждую формулу на листе, но только на этом листе.В то время как нам нужно общее резюме по всему листу.Так что нам нужно делать здесь?Кто-нибудь может нам помочь?