使用POI将大量XLSX文件转换为CSV时出现内存问题

时间:2012-11-08 11:23:16

标签: java performance excel apache-poi

这对我来说是一项非常具有挑战性的任务,因为我正在做很多R& D以在XLSX转换为CSV期间摆脱OutOfMemroyError并且我的excel文件可以有三张纸,每张纸有60000行。 我最近使用了XSSF和SAX(事件API),因为这种方法消耗的内存非常少。但是,事件API仅触发事件中实际存储的事件,这可能对我有用。

在此事件API方法的早期,我使用Workbook类处理XLSX文件,并最终在下面提供的此工作簿创建期间内存不足。

  

工作簿工作簿= WorkbookFactory.create(新文件(“myfile.xlsx”));

那么,使用apache POI处理大量XLSX数据的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

以下是使用sax解析器读取大型xls文件的示例。 Sax解析器将帮助您避免OOM异常。

Error While Reading Large Excel Files (xlsx) Via Apache POI