java读取Excel中的日期时间处理 您所在的位置:网站首页 java导入excel时间格式 java读取Excel中的日期时间处理

java读取Excel中的日期时间处理

#java读取Excel中的日期时间处理| 来源: 网络整理| 查看: 265

有时候,我们需要对Excel进行读取,如果是一般的文本数据还比较容易处理,最让人头疼的是一些特殊的数据,比如说日期数据,这时候就需要一些技巧了。 如果是通过jxl工具类来进行读取的话,还是比较容易处理的,读取到的数据都是String类型的数据,然后进行处理就可以了,不过需要注意的是:如果你对Excel的某一列或者若干列进行了单元格格式的设置,这时候jxl读取的行数,可能就不正确了,还有一点,jxl只支持2007及以前的Excel版本,2010及以后的好像就不支持了。 如果你是通过POI进行读取的话,这个时候,日期数据就会让人很头疼了,我是通过注解加反射获取每一个单元格里面的数据的,下面通过代码说一下如果解决日期格式的处理:

if ("class java.lang.String".equals(xclass)) { if (cell.getCellTypeEnum() == CellType.STRING) { setMethod.invoke(tObject, cell.getStringCellValue()); } else if (cell.getCellTypeEnum() == CellType.NUMERIC) { // 判断参数类型 if(HSSFDateUtil.isCellDateFormatted(cell)){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); setMethod.invoke(tObject, sdf.format(HSSFDateUtil.getJavaDate(cell.getNumericCellValue()))); }else { setMethod.invoke(tObject, df.format(cell.getNumericCellValue())); } } }

其中cell就是代表着单元格里面的值,最外层的if判断是判断你读取的到的数据是什么类型的数据,有的日期读取到的可能是java中的String类型的数据,第二层if是判断Excel中字符串的类型,是标准的字符串类型还是NUMERIC类型的字符串,NUMERIC表示的是纯数字的字符串,这个时候如果不再进一步判断的话,你读到的日期数据就有可能变成距离1990年1月1日的天数了。所以就有了第三层的if判断,如果是日期格式的字符串,就用HSSFDateUtil.getJavaDate获取,如果是普通数字的字符串,就直接获取就可以了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有