2

我有一张大表,上面有很多公式,它们之间有依赖层次结构。它以具有日期值的单元格开头。然后,单元格 x:y(和其他)具有取决于此日期的公式。然后单元格 w:z(和其他)有一个取决于单元格 x:y 的公式。等等...

这个带有日期值的主单元格是使用 apache poi 填充的。

现在我的问题是:当我打开生成的 excel 文件时,日期在那里,但没有计算公式。他们都有错误“ A value used in the formula is of the wrong data type”。似乎当公式尝试自我评估时,日期还不存在。

解决方案: 1) 如果我单击单元格,然后按 ENTER,则公式计算正确。但是我必须对所有细胞都这样做。2)我单击日期单元格,将其复制,然后将其粘贴到同一位置,并且对工作表中的所有公式进行评估!3) 我可以在我的应用程序中迭代所有单元格,使用 FormulaEvaluator 类中的 evaluateFormulaCell 方法评估每个单元格。但是我有很多公式,而且性能很糟糕。

有人对此有解决方案吗?

谢谢!!

4

3 回答 3

1

您的日期值未被 excel 公式识别为日期,您可以做的是让另一个单元格 dat 将首先采用DATEVALUE()使用 Apache poi 填充的单元格的日期值。

然后将您的第一级公式指向该单元格,而不是使用 Apache poi 填充的单元格

于 2013-03-13T15:14:52.940 回答
1

因为 Excel 不会自动计算,所以只需更改此设置。

Excel 2010:文件 -> 选项 -> 公式:查找工作簿计算,然后更改为自动。

它对我有用。

于 2013-09-13T11:59:39.350 回答
0

为了解决这个问题,我更改了模板中的所有公式,以使用以下 sintax 代替常规公式 sintax (=SUM(A:D)):$[SUM(A:D)]

http://jxls.sourceforge.net/reference/formulas.html

于 2013-03-26T20:59:35.560 回答