2013-07-23 4 views
3

Я использую POI Apache и сталкиваюсь с проблемой при оценке ячейки формулы.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 и проверить в самом первенствует, если формула работает хорошо. На 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 как следует.