我正在创建一个包含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编写库?
答案 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