方法一:如果用的是POI,可以直接用HSSFDateUtil.isCellDateFormatted(cell)这个方法。
Java代码
case HSSFCell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)) {
double d = cell.getNumericCellValue();
Date date = HSSFDateUtil.getJavaDate(d);
}
case HSSFCell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)) {
double d = cell.getNumericCellValue();
Date date = HSSFDateUtil.getJavaDate(d);
}
方法二:如果用的是Jxl,可以将cell.getCellFormat 强制转换成 XFRecord。然后判断XFRecord.formatIndex 如果等于 58就是DateCell。
Java代码
if (cell.getType() == CellType.NUMBER) {
NumberCell nc = (NumberCell) cell;
XFRecord xfr = (XFRecord) nc.getCellFormat();
final int INDEX_OF_DATE = 58;
if(xfr.formatIndex == INDEX_OF_DATE) {
Date date = HSSFDateUtil.getJavaDate(nc.getValue());
content = dateformat.format(date);
}
}
if (cell.getType() == CellType.NUMBER) {
NumberCell nc = (NumberCell) cell;
XFRecord xfr = (XFRecord) nc.getCellFormat();
final int INDEX_OF_DATE = 58;
if(xfr.formatIndex == INDEX_OF_DATE) {
Date date = HSSFDateUtil.getJavaDate(nc.getValue());
content = dateformat.format(date);
}
}