POI读取Excel数据日期时间输出

POI读取Excel单元格的数据,不同的数据类型有不同的读取方法,因此要读取数据必须先判断单元格的数据类型,POI定义了NUMERIC数值型,把日期时间也当作数值进行存储,所以我们读取时先判断为数值NUMERIC类型,再用DateUtil.isCellDateFormatted(cell),来判断是不是日期时间类型,如果返回true则为日期时间类型。在Excel中有多种数据类型,还允许自定义,虽然POI在BuiltinFormats类中定义了许多格式,但中国人的习惯格式还有的没有,如 “yyyy-MM-dd HH:mm:ss”这种格式就没有,但中国人的习惯这样写,要这样写就是自定义类型,自定义类型是没有统一的一个确定值的,用cell.getCellStyle().getDataFormat()得到的值,因为自定义,没法提前知道具体的数值,并且可能在不同的电脑上会是不同的值,所以这种方法就会很麻烦。这里提供另一种方法可以解决这个问题。

DataFormatter dataFormatter=new DataFormatter();
Format format=dataFormatter.createFormat(cl);
Date date=cl.getDateCellValue();
String str=format.format(date);

这种方法就通获取单元格自身的格式,来以单元格的格式书写出来,这样就不同判断单元格具体格式类型了,但这种方式也有不足,对于BuiltinFormats类中定义的格式,它会按照BuiltinFormats类定义的样子显示出来,如mm/dd/yy格式,但它解决了自定义格式不好判断的问题。希望对小伙伴有所帮助。

    原文作者:Sabs
    原文地址: https://blog.csdn.net/overu88/article/details/74530995
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞