我正在使用JXL編寫50000行和30列的excel文件。 我的代碼看起來是這樣的:JAVA - 在jxl中編寫Excel單元格時出現內存不足錯誤
對(INT J = 0;Ĵ< countOfRows; J ++){
myWritableSheet.addCell(new Label(0, j, myResultSet.getString(1), myWritableCellFormat));
myWritableSheet.addCell(new Label(1, j, myResultSet.getString(2), myWritableCellFormat));
.....
.....
}
在寫單元,程序進慢
最後在25000行左右出現以下錯誤:
異常在線程「線程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的問題。
有沒有辦法寫入文件,清除內存並coninue每1000個單元格寫入單元格?
這是一個好主意,或者你會提出什麼樣的解決方案?
我在WorkbookSettings對象中找不到setUseTemporaryFileDuringWrite。 你有什麼版本的jxl? (查看我在下面發佈的答案以獲取更多信息) – 2010-07-06 15:37:24
@Stefanos,根據javadocs,它看起來像是該功能在verison> = 2.6.9中可用 – Mark 2010-07-06 16:58:49