2016-06-07 108 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,如果你需要確保你檢測丟失細胞