2013-07-23 438 views
3

我正在使用Apache POI,并在评估公式单元格时遇到问题。Apache POI org.apache.poi.ss.formula.FormulaParseException

这是我的代码:

XSSFCell cellvalue = sheet.getRow(6).getCell(2); 
if (cellvalue.getCellType() == cellvalue.CELL_TYPE_FORMULA) { 
    evaluator.evaluateFormulaCell(cellvalue); 
} 

的公式:

=C6/Num_Input and Num_Input = F36 

问题:

org.apache.poi.ss.formula.FormulaParseException: 
Cell reference expected after sheet name at index 18. 
+3

公式的文字是什么? – rgettman

+1

= C6/Num_Input 和Num_Input = F36,感谢您的回复 – Nikesh

回答

2

首先,离开POI和Excel本身检查公式工作精细。 POI结束时没有问题。我写了这个示例代码,它工作正常。

 XSSFWorkbook workbook = new XSSFWorkbook(); 
     XSSFSheet sheet = workbook.createSheet(); 
     XSSFFormulaEvaluator evaluator = new XSSFFormulaEvaluator(workbook); 
     XSSFCell cellvalue = sheet.createRow(0).createCell(0); 
     sheet.getRow(0).createCell(1).setCellValue(2); 
     sheet.getRow(0).createCell(2).setCellValue(5); 
     cellvalue.setCellFormula("B1+C1"); 
     if (cellvalue.getCellType() == XSSFCell.CELL_TYPE_FORMULA) { 
      evaluator.evaluateFormulaCell(cellvalue); 
     } 
     System.out.println(cellvalue.getNumericCellValue()); 

它评估为2 + 5 = 7,因为它应该。