使用Apache POI Java从Excel中获取包含date公式的单元格的date值

我试图从Excel文件中读取一切正常的单元格值。 但是,当来到公式,特别是date字段,我无法获得任何date值。

在Excel中使用公式生成的日期

我如何检查评估的CellValue中的datetypes? 以及如何获取date值?

我的代码如下。

Cell cell = nextRow.getCell(cellIndex, Row.CREATE_NULL_AS_BLANK); if (cell.getCellType() == Cell.CELL_TYPE_FORMULA) { FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); CellValue formulaValue = evaluator.evaluate(cell); switch (formulaValue.getCellType()) { case Cell.CELL_TYPE_NUMERIC: { int numbericValue = formulaValue.getNumericValue(); // 42909.0 if (isCellDate?) { //What should i check here? // DATE THINGS // how to convert numeric value 42909.0 to date?? } else { // NUMERIC THINGS } break; } default: // STRING - ERROR - BLANK - NUMERIC THINGS break; } } 

 HSSFDateUtil : Helped to solve my issue. my solution is : case Cell.CELL_TYPE_NUMERIC: { if (HSSFDateUtil.isCellDateFormatted(cell)) { Date date = HSSFDateUtil.getJavaDate(formulaValue.getNumberValue()); System.out.println(date); } else { System.out.println(cell.getNumericCellValue()); } break; 

}