APACHE POI中的vlookup表错误中不存在该列

时间:2019-11-19 15:13:19

标签: java excel apache-poi vlookup excel-tables

我在工作表中有一个Excel文件,其中包含用于VLOOKUP的名为excel表。

我正在尝试通过引用VLOOKUP表在另一张纸上获得Gender_lookup结果。我正在使用公式=VLOOKUP(TRIM(CLEAN([@[Gender ]])),Gender_lookup,2,0),该公式从表中的当前行获取Gender的值,并在另一张工作表的Gender表中检查相应的Gender_lookup的值。该公式有效,并且可以在excel中使用。

我也有raised an issue in bugzilla供所有附件参考

我尝试使用XSSFFormulaEvaluator.evaluateAllFormulaCells(workbook)进行评估,这给了我一个例外:

org.apache.poi.ss.formula.FormulaParseException: The column  doesn't exist in table Gender_lookup
    at org.apache.poi.ss.formula.FormulaParser.parseStructuredReference(FormulaParser.java:821)
    at org.apache.poi.ss.formula.FormulaParser.parseNonRange(FormulaParser.java:908)
    at org.apache.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:498)
    at org.apache.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:322)
    at org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1548)
    at org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1506)
    at org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1493)
    at org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1867)
    at org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1994)
    at org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1978)
    at org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1935)
    at org.apache.poi.ss.formula.FormulaParser.intersectionExpression(FormulaParser.java:1908)
    at org.apache.poi.ss.formula.FormulaParser.Arguments(FormulaParser.java:1479)
    at org.apache.poi.ss.formula.FormulaParser.function(FormulaParser.java:1352)
    at org.apache.poi.ss.formula.FormulaParser.parseNonRange(FormulaParser.java:905)
    at org.apache.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:498)
    at org.apache.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:322)
    at org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1548)
    at org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1506)
    at org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1493)
    at org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1867)
    at org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1994)
    at org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1978)
    at org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1935)
    at org.apache.poi.ss.formula.FormulaParser.intersectionExpression(FormulaParser.java:1908)
    at org.apache.poi.ss.formula.FormulaParser.unionExpression(FormulaParser.java:1889)
    at org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:2036)
    at org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:170)
    at org.apache.poi.xssf.usermodel.XSSFEvaluationWorkbook.getFormulaTokens(XSSFEvaluationWorkbook.java:85)
    at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:271)
    at org.apache.poi.ss.formula.WorkbookEvaluator.evaluate(WorkbookEvaluator.java:216)
    at org.apache.poi.xssf.usermodel.BaseXSSFFormulaEvaluator.evaluateFormulaCellValue(BaseXSSFFormulaEvaluator.java:56)
    at org.apache.poi.ss.formula.BaseFormulaEvaluator.evaluate(BaseFormulaEvaluator.java:110)
    at practcie.Vlookup.main(Vlookup.java:97)

0 个答案:

没有答案