什么是#ADDIN? Apache POI引起的错误?

时间:2015-01-03 02:33:25

标签: excel apache-poi

我正在创建一个包含SUMIFS公式单元块的电子表格。它创建很好,POI不会抱怨cell.setCellFormula()并且不会抱怨评估者。评估.FormulaCell()。

SUMIFS单元格如下:

SUMIFS(raw!$C$2:$C$2625, raw!$D$2:$D$2625, C$1, raw!$B$2:$B$2625, $A2)

" raw"是原始数据来源的第二张表的名称。

当我在LibreOffice Calc中打开电子表格时,单元格中有正确的公式,但都显示#ADDIN?而不是价值。 F9什么都不做。 Ctrl + Shift + F9不执行任何操作。

但是,如果我触摸公式(即添加一个空格并删除它),然后按回车键,单元格神奇地具有正确的值。所以LibreOffice明确地接受了这个公式。

如何解决此错误?或者我是否必须使用其他一些XLS编写库?

2 个答案:

答案 0 :(得分:1)

找到答案 - HSSFWorkbook显然不支持SUMIFS(),但XSSFWorkbook支持 。在我的代码中更改了一行来代替创建一个XSSF工作簿,并且发出的XLSX文件与LibreOffice一起正常工作。

答案 1 :(得分:0)

尝试使用_xlfn.SUMIFS代替SUMIFS。它对我来说很好!或者,由于公式周围缺少括号,您可能会遇到错误,请查看:Apache POI 3.x - Logical formula resulting in #VALUE! (error) only in MS Excel 2010