gpt4 book ai didi

excel - JAVA - 在 jxl 中写入 Excel 单元格时出现内存不足错误

转载 作者:行者123 更新时间:2023-12-04 21:13:21 24 4
gpt4 key购买 nike

我正在使用 JXL 编写一个 50000 行和 30 列的 excel 文件。
我的代码如下所示:

for (int j = 0; j < countOfRows; j++) {

myWritableSheet.addCell(new Label(0, j, myResultSet.getString(1), myWritableCellFormat));

myWritableSheet.addCell(new Label(1, j, myResultSet.getString(2), myWritableCellFormat));

.....

.....

}

在编写单元格时,程序变得越来越慢

最后在第 25000 行附近出现以下错误:

线程“Thread-3”java.lang.OutOfMemoryError 中的异常:Java 堆空间
在 jxl.write.biff.WritableSheetImpl.getRowRecord(WritableSheetImpl.java:984)
在 jxl.write.biff.WritableSheetImpl.addCell(WritableSheetImpl.java:951)
在 KLL.ConverterMainFrame$exportToXLSBillRightsThread.run(ConverterMainFrame.java:6895)

在 Java 中处理内存总是很困难的。

在这种情况下,它似乎是 jxl 的问题。

有没有办法写入文件,清除内存并继续每 1000 个单元格写入单元格?

这是一个好主意还是您会提出什么其他解决方案?

最佳答案

JExcel FAQ有几个建议,包括上面柯蒂斯的想法。

如果您不介意性能下降,可以使用 temporary file instead of doing it all in memory .

WorkbookSettings s = new WorkbookSettings();  
s.setUseTemporaryFileDuringWrite(true);
WritableWorkbook ws = Workbook.createWorkbook(new File("someFile.xls"),s);

关于excel - JAVA - 在 jxl 中写入 Excel 单元格时出现内存不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3167029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com