版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fwk19840301/article/details/81878130
改进版
poi把日期数据也归类为 Cell.CELL_TYPE_NUMERIC
数字类型,
并且在cell中是正确读取到了 2015-05-25,但是在使用cell.getNumericCellValue()
方法获取时却发生了变化,返回了42149.0
/**
* 获取每个单元格的内容
*/
private static Object getCellValue(Cell cell) {
Object value = null;
DecimalFormat df = new DecimalFormat("0");//格式化number String字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//日期格式化
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
value = cell.getRichStringCellValue().getString();
break;
//这个地方区别
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
value = cell.getDateCellValue();
}else if ("General".equals(cell.getCellStyle().getDataFormatString())) {
value = df.format(cell.getNumericCellValue());
} else {
value = cell.getRichStringCellValue().getString();
}
break;
case Cell.CELL_TYPE_BLANK:
value = "";
break;
default:
break;
}
return value;
}