[英]How to evaluate this formula right in apache poi?
在Microsoft Office Excel中,我在一個單元格中設置此公式。 =YEAR("2017-01-01")
。結果是2017
。
在apache-poi中,我也這樣做。
cell.setCellFormula("YEAR(\"2017-01-01\")");
但是我得到了錯誤的結果。
#VALUE!
如何獲得正確的結果?
碼
HSSFWorkbook hssfworkbook = new HSSFWorkbook();
HSSFSheet sheet = hssfworkbook.createSheet("Sheet1");
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellFormula("YEAR(\"2017-01-01\")");
CreationHelper creationHelper = hssfworkbook.getCreationHelper();
FormulaEvaluator evaluator = creationHelper.createFormulaEvaluator();
System.out.println(evaluator.evaluate(cell));
安慰
org.apache.poi.ss.usermodel.CellValue [#VALUE!]
使用apache-poi 3.16
來自Interface FormulaEvaluator docs
如果單元格包含公式,它將評估公式,並將公式結果放回單元格中,以代替舊公式。 否則,如果單元格不包含公式,則此方法將使單元格保持不變。 請注意,返回了相同的Cell實例以允許鏈接調用,例如:
int evaluatedCellType = evaluator.evaluateInCell(cell).getCellType();
if (cell.getCellType() == Cell.CELL_TYPE_FORMULA)
{
cell = evaluator.evaluateInCell(cell);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.