我试图从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