0

POI と定式化エバリュエーターで奇妙な問題が発生しています。私はこれを何度も行ってきましたが、何らかの理由で次の式が失敗し、頭が痛くなります。

式: =IF(B12=0, B9, 0)

私のシートの場合、B12 は 0 で、B9 は実際には塗りつぶされた数字です。

switch(cell.getCachedFormulaResultType()) を確認しようとすると、セル タイプが CELL_TYPE_STRING として返されます。ただし、richstringvalue は null です。

次に、次の方法で計算を実行しようとします。

   FormulaEvaluator evaluator =         cell.getSheet().getWorkbook().getCreationHelper().createFormulaEvaluator();

XmlValueDisconnectedException を取得します。

サポートされている関数のリストによると、IF は簡単なはずです。

誰でも他の提案を提供できますか、私は困惑しており、例外は無意味です:(

トレース:

org.apache.xmlbeans.impl.values.XmlValueDisconnectedException
    at org.apache.xmlbeans.impl.values.XmlObjectBase.check_orphaned(XmlObjectBase.java:1244)
    at org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTDefinedNameImpl.getName(Unknown Source)
    at org.apache.poi.xssf.usermodel.XSSFName.getNameName(XSSFName.java:133)
    at org.apache.poi.xssf.usermodel.XSSFEvaluationWorkbook.getName(XSSFEvaluationWorkbook.java:84)
4

2 に答える 2