从Java中读取date字段

我正在尝试从Java代码中的Excel工作表中读取Date值使用:

 DateUtil.isCellDateFormatted(cell) 

但它会抛出一个exception,说cannot read text from a numeric field

有什么build议么?

您可以使用以下内容进行检查,然后按照您的要求使用。

 if(cell.getCellType()==Cell.CELL_TYPE_NUMERIC){ if (DateUtil.isCellDateFormatted(cell)) { System.out.println(cell.getDateCellValue()); } else { System.out.println(cell.getNumericCellValue()); } } 

DateUtil.isCellDateFormatted方法假定您已经检查过该单元是一个数字值。 看代码http://grepcode.com/file/repo1.maven.org/maven2/org.openl.rules/org.openl.lib.poi.dev/5.8.0/org/apache/poi/ss/usermodel /DateUtil.java#DateUtil.isCellDateFormatted%28org.apache.poi.ss.usermodel.Cell%29

由于Excel在内部将date存储为数字,因此请首先确认单元格是数字,然后检查它是否为date。

然后你可以用这个或类似的东西来得到实际的date值:

 Date date = HSSFDateUtil.getJavaDate(cell.getNumberValue());