【发布时间】:2016-05-15 14:50:01
【问题描述】:
我正在尝试为 Android 创建一个非常基本的电子表格 (XLS) 查看器。 在使用 Apache poi API 时,我在创建新的 XSSFWorkbook 对象时出现内存不足错误:
mWorkBook = new XSSFWorkbook(file);
如何在不将整个文件加载到内存的情况下获取 .xls 中的特定行/单元格?
【问题讨论】:
-
如何抓取特定的行/单元格?我认为这个答案只是读取整个文件。
-
它读取整个文件,但它不会将整个文件加载到内存中,并且您可以关闭流而不读取所有行。 IE。一旦您阅读了所需的行,您就可以关闭它。查看 Apache POI 中的流式处理 API。 poi.apache.org/spreadsheet/index.html
-
但是它可以从第一行以外的其他地方开始读取吗?如果我在文件中途需要一行怎么办?读取整个文件以获取该行将无法正常工作。
-
电子表格并非设计为以这种方式访问。您必须在文件格式的限制范围内处理它们。如果您需要快速随机读取访问,我建议将数据加载到索引存储(如数据库)中。
标签: java android out-of-memory apache-poi