我有一个货币格式单元格,它是数字的,并使用公式编码。我能看懂公式,没问题。我尝试了cell.getNumericCellValue()
,但它的读数为0.00。我试过用setCellType
把它转换成一个字符串,用cell.getStringCellType()
读它。我也试过使用DataFromatter()
和应用formatCellValue(cell)
,它读取公式。我也试过使用FormulaEvaluator
.
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
cell.setCellFormula(formaCellValue.substring(1));
evaluator.evaluateFormulaCell(cell);
这是我得到的错误信息:
指定的公式'=ROUND(G65*E65,2)'以不允许的等号开头。
还有我没有尝试过的方法吗?或者我可以将单元格格式转换为一般单元格并尝试获取值吗?如果是这样,我该怎么做呢?
FormulaEvaluator evaluator =
workbook.getCreationHelper().createFormulaEvaluator();
double value = evaluator.evaluate(cell).getNumberValue();
System.out.println(value);
cell.setCellType(CellType.TYPE_NUMERIC);
double value = cell.getNumericCellValue();
System.out.println(value);