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

时间:2013-09-04 18:32:44

标签: java excel apache-poi excel-formula

我有一个Excel模板,前5列留空(从XML填充)。第六列有一个下拉列表,根据从列表中选择的任何值,值将显示在第7列中。这是通过使用第7列的INDEX-MATCH公式完成的。

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

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

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

formulaEvaluator()

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

我真的很感激,如果有这方面经验的人可以指导我一点。

1 个答案:

答案 0 :(得分:2)

如果您有权访问Cell,只需致电:

String formula = cell.getCellFormula();

请注意,这只适用于单元格是公式单元格的情况。 IE:cell.getCellType() == Cell.CELL_TYPE_FORMULA。如果单元格不是公式单元格,那么您最终会得到IllegalStateException

中所述的{{1}}