[英]Writing large number of rows using jxls to excel in java
我使用以下代碼將數據寫入excel
XLSTransformer transformer = new XLSTransformer();
InputStream is = this.getServlet().getServletContext()
.getResourceAsStream(templateFilePath);
HSSFWorkbook workBook = (HSSFWorkbook) transformer.transformXLS(is, beans);
但是系統掛起后HSSFWorkbook workBook =(HSSFWorkbook)transformer.transformXLS(is,beans); 如果行數超過1500.是否有任何其他方式或建議用於使用大型數據集的模板和bean對象寫入數據
您可以升級到Jxls-2並使用SXSSF Transformer支持。 代碼可能如下所示
Transformer transformer = PoiTransformer.createSxssfTransformer(workbook, 100, false);
AreaBuilder areaBuilder = new XlsCommentAreaBuilder(transformer);
List<Area> xlsAreaList = areaBuilder.build();
Area xlsArea = xlsAreaList.get(0);
xlsArea.applyAt(new CellRef("Result!A1"), context);
請參閱jxls-demo中的完整示例。 請注意,此方法假設某些模板限制,因為只有一部分行保留在內存中(特別是關於公式評估)。
如果您不需要公式,建議使用context.getConfig().setIsFormulaProcessingRequired(false);
禁用公式處理context.getConfig().setIsFormulaProcessingRequired(false);
您可以嘗試使用SXSSF - POI工作簿的流式版本。 這是猜測。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.