2016-06-07 109 views
0

我想读书有大约40MB大小50MB大的Excel文件。
对于XLSX,我用它OPCPackage解决了这个问题,但现在我面临着XLS格式问题。
当我正常使用POI像POIFSFileSystem读取文件,我得到的Java 堆空间错误
你能帮我解决这个问题吗?阅读大XLS和XLSX Excel格式

基本上,我们正在转换Excel文件为制表符分隔的文件。

OPCPackage pkg = OPCPackage.open(sourceFile.getPath(), 
      PackageAccess.READ); 

让我知道你是否需要任何其他信息。

+0

用于HSSFListener处理文件。 – Chinna

回答

0

当你执行你的计划,你需要指定与-Xmx2g较大的最大堆大小(2演出的最大值)。请参阅“man java”。

+0

感谢您的答复。我想在理想的系统上测试它。而且我尝试过,但仍然是相同的错误。 – Chinna

2

由于explained in the Apache POI documentation, don't open with an InputStream when you have a File!

对于.xls文件,你应该确保你使用Apache POI的新版本,然后用new POIFSFileSystem(File)打开容器,如

POIFSFileSystem fs = new POIFSFileSystem(new File("input.xls")); 
// HSSF Event parsing code goes here 

否则,请确保您使用HSSF event api如果记忆是一个问题,而可能是record-aware event api,如果你需要确保你检测丢失细胞