如何使用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立。
- 从另一个XSSFCellStyle(POI APACHE)创build新的或克隆的XSSFCellStyle
- 如何使用POI处理旧的excel .xls文件?
- Java,Apache POI,从MS Excel中看到的单元格值不会改变
- 如何使用POI删除工作表之间的空白行?
- apache POI MS Office Excel无法打开字体颜色设置Excel文件
- 替代getocellTypeEnum()的poi 3.17中的getcelltype()
- 如何清理使用apache poi生成的excel文件中的单元格之间的差距
- 如何从该行中find特定的string后打印Excel表格的整个行?
- 在excel中合并具有相同值的单元格