使用POI解析相交的名称范围

时间:2013-04-17 10:56:59

标签: java apache apache-poi

我在使用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)

有没有人遇到过这类问题?解析器是不能解析这样的公式还是我做错了什么?除了编写我想避免的解析器之外,我没有任何想法可以解决这个问题......

0 个答案:

没有答案