我正在尝试为Android创建一个非常基本的电子表格(XLS)查看器。 在使用Apache poi API时,我在创建新的XSSFWorkbook对象时出现内存不足错误:
mWorkBook = new XSSFWorkbook(file);
如何在.xls中抓取特定的行/单元格而不将整个文件加载到内存中?
答案 0 :(得分:1)
电子表格不适合随机访问。电子表格不是为此目的而设计的原因是因为单元格可以任意长,并且行可以在其中具有任意数量的单元格。如果不是这种情况,并且每行都有一个固定大小的字节,那么你可以简单地跳过读取文件的第一个(ROWSIZE * INDEXOFROW)
字节。
如果随机访问是您的主要用例,我建议您将数据加载到一个小型数据库中。看看H2。