我試圖從Web應用程序寫出結果集(100,000行,45列)以使用JExcel 2.6.9 。JExcel(jxl):將大記錄集寫入excel工作表失敗(OutOfMemoryError:Java堆空間)
Caused by:
java.lang.OutOfMemoryError - Java heap space
at jxl.write.biff.WritableSheetImpl.getRowRecord(WritableSheetImpl.java:1179)
我已嘗試以下步驟:與
進程失敗
WorkbookSettings ws = new WorkbookSettings();
ws.setLocale(new Locale("en", "EN"));
ws.setUseTemporaryFileDuringWrite(true);
WritableWorkbook workbook = Workbook.createWorkbook(new File("tempExcel.xls"),ws);
所以基本上在一個while循環,從數據庫中ResultSet
迭代,然後
s.addCell(new Label(colIndex, rowIndex, value, format));
是爲每一行完成的。
我並不放棄如何獲得通過這個問題。在運行此應用程序的env中存在內存限制,因此僅僅爲JVM分配更多RAM不是一種選擇,除非完全沒有其他方式。我將不勝感激這方面的任何反饋。由於
我也有這個相同的問題。谷歌搜索後,我碰到了這個鏈接:http://poi.apache.org/spreadsheet/how-to.html#xssf_sax_api它很容易處理大量的數據。對於我的測試程序,我使用了100,000行和50列。它寫入一個xls文件沒有任何錯誤。我遇到的唯一問題是生成的excel文件的大小。它超過100 MB!除此之外,它的完美! – Joyson 2012-12-11 04:47:14