我在使用apache-poi解析包含相交名称范围的公式时遇到问题 例如,如果我尝试解析像“= SUM((Total_Cost!Jan):( Total_Cost!Apr_))”这样的公式,“其中Total_Cost,Jan和Apr_是重叠的名称范围,我收到以下异常:
线程“main”中的异常org.apache.poi.ss.formula.FormulaParseException:在指定公式'SUM((Total_Cost Jan):( Total_Cost Apr_))'中的char 16'J'附近解析错误。预期')' 在org.apache.poi.ss.formula.FormulaParser.expected(FormulaParser.java:219) 在org.apache.poi.ss.formula.FormulaParser.Match(FormulaParser.java:251) 在org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1108) 在org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1079) 在org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1066) 在org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1426) 在org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1526) 在org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1510) 在org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1467) 在org.apache.poi.ss.formula.FormulaParser.Arguments(FormulaParser.java:1051) 在org.apache.poi.ss.formula.FormulaParser.function(FormulaParser.java:936) 在org.apache.poi.ss.formula.FormulaParser.parseNonRange(FormulaParser.java:558) 在org.apache.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:429) 在org.apache.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:268) 在org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1119) 在org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1079) 在org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1066) 在org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1426) 在org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1526) 在org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1510) 在org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1467) 在org.apache.poi.ss.formula.FormulaParser.unionExpression(FormulaParser.java:1447) 在org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:1568) 在org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:176)
有没有人遇到过这类问题?解析器是不能解析这样的公式还是我做错了什么?除了编写我想避免的解析器之外,我没有任何想法可以解决这个问题......