Java 从包含数组公式的单元格中获取值

Java 从包含数组公式的单元格中获取值,java,selenium,apache-poi,xssf,Java,Selenium,Apache Poi,Xssf,我有XSSFWorkbook,我把数组公式放在两列中,我想复制这些列中的值并粘贴到其他列上 公式如下所示: {=IFERROR(INDEX(Sheet2!$A$2:$C$13,MATCH(1,(Sheet2!$A$2:$A$13=$A2)*(Sheet2!$C$2:$C$13=$D2),0),2),"FAIL")} 我将公式(通过在多个单元格上运行循环)放在如下位置(sheet为XSSFSheet): 然后计算如下公式(wb为XSSF工作簿): 到目前为止,一切都很顺利。公式正在显示有效的结果

我有XSSFWorkbook,我把数组公式放在两列中,我想复制这些列中的值并粘贴到其他列上

公式如下所示:

{=IFERROR(INDEX(Sheet2!$A$2:$C$13,MATCH(1,(Sheet2!$A$2:$A$13=$A2)*(Sheet2!$C$2:$C$13=$D2),0),2),"FAIL")}
我将公式(通过在多个单元格上运行循环)放在如下位置(sheet为XSSFSheet):

然后计算如下公式(wb为XSSF工作簿):

到目前为止,一切都很顺利。公式正在显示有效的结果

现在,如果我在这些单元格上运行一个循环并读取如下值(c是单元格):

它总是返回“FAIL”,就像在将公式作为非数组公式求值后返回结果一样

所以我用这个公式做了同样的尝试:

{=IF(TRUE,TRUE,FALSE)}
令人惊讶的是,它让我回到了现实


所以,我的问题是这个公式如何返回正确的结果而不是我的主公式。

所以Apache Poi仍然不支持操作表公式(数组公式)

尚不支持操作表公式(在Excel中为公式 看起来像“{=…}”而不是“=…”)

有关更多详细信息,请参阅

所以我必须把我的数组公式转换成非数组公式

注意:
如果只想显示结果,仍然可以使用数组公式。
但不能从包含数组公式的单元格中获取值

XSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
String cellValue = c.getStringCellValue();  
{=IF(TRUE,TRUE,FALSE)}