2010-10-12 59 views
0

我一直在寻找这个问题的解决方案,并没有发现任何好=(POI堆空间异常或用于Excel 2007的任何其他java api?

所以问题是我需要创建一个多达50.000寄存器的Excel文件,当我这样做给我看这个错误在50.000应用程序注册:

Java堆空间

至于我要找的,解决方法之一就是增加了堆内存,但相当不喜欢我(第一个艾滋病),因为问题依然存在,如果文件变大并且服务器冻结并占用大量内存,试图这样做并且变得缓慢

我认为一个解决方案将写出Excel文件,而不是将数据留在堆内存中,但我不明白它的工作

任何想法?或Excel 2007文件的另一个框架???????

回答

1

调用write()方法对你HSSFWorkbook,以保存Excel工作簿文件:

FileOutputStream fileOut = new FileOutputStream("workbook.xls"); 
wb.write(fileOut); 
fileOut.close(); 

但作为this thread表示没有办法做流中写道POI到文件。 POI的替代品是jXLS(开源)或Aspose.Cells for Java(专有)

+0

实际上,据我一直在测试时,我调试程序,Excel文件创建fileOut.close()时;不知道为什么,altso我尝试调用写入metod在多个实例来释放堆内存,工作,但只写了文件的最后部分=( – ErVeY 2010-10-12 19:39:03

+0

POI是不是伟大的内存。如果你想写一个巨大的文件,你应该有巨大的内存。 – bwawok 2010-10-13 02:02:17

+0

threaad显示与我的相同的错误,jxls是基于POI库,所以不认为它会工作,我认为解决方案可以aspose细胞,但我需要的东西免费=(,我会继续环顾你的时间= D – ErVeY 2010-10-15 13:04:16

相关问题