在Android上使用Apache poi阅读xls时内存不足

时间:2016-02-05 15:07:43

标签: java android out-of-memory apache-poi

我正在尝试为Android创建一个非常基本的电子表格(XLS)查看器。 在使用Apache poi API时,我在创建新的XSSFWorkbook对象时出现内存不足错误:

mWorkBook = new XSSFWorkbook(file);

如何在.xls中抓取特定的行/单元格而不将整个文件加载到内存中?

1 个答案:

答案 0 :(得分:1)

电子表格不适合随机访问。电子表格不是为此目的而设计的原因是因为单元格可以任意长,并且行可以在其中具有任意数量的单元格。如果不是这种情况,并且每行都有一个固定大小的字节,那么你可以简单地跳过读取文件的第一个(ROWSIZE * INDEXOFROW)字节。

如果随机访问是您的主要用例,我建议您将数据加载到一个小型数据库中。看看H2