java - 生成新的 Excel,同时保留模板 Excel 文件中的旧公式

标签 java excel apache-poi excel-formula

我有一个 Excel 模板,其中前 5 列留空(将从 XML 填充)。第六列有一个下拉列表,根据从列表中选择的值,第七列中会出现一个值。这是通过对第七列使用 INDEX-MATCH 公式来完成的。

=INDEX(Sheet7!$B$1:$B$312,MATCH(F3,Sheet7!$A$1:$A$312,0))

任务是采用此 Excel 模板,并使用 POI 填充前 5 列并生成新的 Excel 工作簿。 (不改变现有工作表)。

问题是当我生成新的 Excel 工作簿时,公式不会从模板复制。保留我正在从事的任务的公式非常重要。我读到过

formulaEvaluator()

但我认为在这种情况下它不会起作用,因为我需要按原样保留公式。我无法在复制之前评估它,因为此时第 6 列中不会有任何数据来评估公式并存储值。

如果在这方面有经验的人可以指导我,我将非常感激。

最佳答案

如果您有权访问Cell,只需调用:

String formula = cell.getCellFormula();

请注意,这仅在单元格是公式单元格时才有效。 IE:cell.getCellType() == Cell.CELL_TYPE_FORMULA。如果单元格不是公式单元格,您将最终得到 IllegalStateException,如 API 中所述。

关于java - 生成新的 Excel,同时保留模板 Excel 文件中的旧公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18621293/

相关文章:

excel - 用“(英制符号)VBA Excel 替换不可打印字符

python - 在Python列表中导入Excel列

java - 我如何通过java检查Excel文件中的单元格对于特定的第一个单元格值不为空

java - 在android studio中将新记录插入sqlite时出现问题

java - 如何在不多次执行该方法的情况下将返回值传递给其他类

java - jackson 使用 spring 的接口(interface)列表反序列化对象

java - 获取错误为 "org.apache.poi.hssf.usermodel.HSSFRow cannot be cast to org.apache.poi.ss.usermodel.Row"

Java:限制在小区域内的基于泊松的点过程

excel - 使用 VBA 循环使用特定名称的工作表

java - 如何使用 apache poi 读取 xlsx 类型的 Excel 文件的单元格内容?