如何使用Apache POI优化Excel工作簿
对于我正在开发的一个业余爱好项目,我想使用Apache POI来更新,评估和检索Excel文件中的结果。 通常情况下,只有less数几个单元格与此相关,其余单元格占用大量空间,导致打开文件时出现性能问题。 假设我有以下结构
- A1含有SUMPRODUCT(B2:B10; C2:C10)
- 在“D”,“E”和“F”列有一些随机数字的“首先”
- 在多个单元中使用一些随机数据“第二个”表
现在,我想能够更新B2:B10和C2:C10并获取A1的更新值。 我不在乎其他数据。 要优化文件的大小,我想将所有其他单元格更新为null
并保存该文件。 例如,在上面的例子中:从表“第一个”删除列D,E和F +删除表“第二个”。
一种方法是实现类似下面的伪代码(假设没有循环引用)
Take set of cells I want to evaluate (eg, A1) as "relevantCells" For each cell in "relevantCells" Retrive all cells in the formulae and add to "relevantCells" For each cell in workbook Check if cell is in "relevantCells" if(yes) continue else set cell to null Save workbook
是否有更好的方式让Apache POI自动删除所有不相关的单元格,以便为一组单元格检索更新的值?
看一下基于事件的API 读取文件的方式 ,这样你就可以以stream的方式读取文件(即使是非常大的文件也没有OOM),只把“有趣的部分”写进第二个工作簿,你随着你的步伐而build立。
- 需要一个不使用公式的apache POI createDateConstraint的工作示例
- Poi的词汇似乎被自动添加
- 使用poi api从电子表格中读取时间值
- 防止编辑由Apache POI生成的excel文件中的单元格
- POI / Excel:以“相对”方式应用公式
- 如何解决java.lang.VerifyError:org / apache / poi / xssf / usermodel / XSSFWorkbook?
- 用于打印的手动分页符在Apache POI excel中不起作用
- C#。 xlsxdate单元格通过NPOI 2.0导入到DataTable
- Java POI中的InvalidFormatException