我有一个 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/