我正在尝试Date
使用以下方法从 java 代码中的 excel 表中读取一个值:
DateUtil.isCellDateFormatted(cell)
但它抛出一个异常说cannot read text from a numeric field
。
有什么建议么?
我正在尝试Date
使用以下方法从 java 代码中的 excel 表中读取一个值:
DateUtil.isCellDateFormatted(cell)
但它抛出一个异常说cannot read text from a numeric field
。
有什么建议么?
您可以使用以下方法进行检查,然后根据您的要求使用。
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 = HSSFDateUtil.getJavaDate(cell.getNumberValue());