簡體   English   中英

從包含數組公式的單元格中獲取值

[英]Get value from cell containing array formula

我有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")}

我已經像這樣放置了公式(通過在多個單元格上運行循環)(工作表為XSSFSheet):

String formula = "AboveFormulaWithIterativeCell"  // (without {} and =)
String range = "XFC" + i;  // i is iterative row number
sheet.setArrayFormula(formula, CellRangeAddress.valueOf(range));

然后評估這樣的公式(wb是XSSFWorkbook):

XSSFFormulaEvaluator.evaluateAllFormulaCells(wb);

到目前為止,一切都很好。 公式顯示有效結果。

現在,如果我在這些單元格上運行一個循環並讀取這樣的值(c是單元格):

String cellValue = c.getStringCellValue();  

它總是返回“ FAIL”,就像在將公式評估為非數組公式之后返回結果一樣。

所以我用這個公式嘗試了同樣的事情:

{=IF(TRUE,TRUE,FALSE)}

令人驚訝的是,它使我成真。

所以,我的問題是這個公式如何返回正確的結果,而不是我的主要公式。

因此,Apache Poi仍然不支持操縱表公式(數組公式)。

尚不支持操作表格公式(在Excel中,看起來像“ {= ...}”而不是“ = ...”的公式)

有關更多詳細信息,請參見此處

所以我不得不將我的數組公式轉換為非數組公式。

注意:
如果只想顯示結果,則仍然可以使用數組公式。
但是您不能從包含數組公式的單元格中獲取值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM