问题描述:springboot项目,Excel 文件导入后日期数据解析变成数字。在项目开发过程中,若使用POI读取Excel 文件中的日期数据,可能会出现日期数据解析变成数字的情况。
在解析Excel 文件时,会发现表格中显示的日期会变成数字,实际上Excel 表格中存储日期数据的格式就是数字,但我们看到的是日期数据,所以直接从Excel 的 Cell中读取数据后就会出现 日期变成数字的假象。
由于Excel 中的时间是以1900年为起点,读取得到的数字则是自1900年以来经过的天数差值。
解决方案:
Calendar calendar = new GregorianCalendar(1900,0,-1);
Date date = DateUtils.addDays(calendar.getTime(),这个地方填入提取出来的整型数字即可);
示例代码:
这样得到的date就是正常的日期了。
另一个坑:
Excel数据Cell有不同的类型,当我们试图从一个数字类型的Cell读取出一个字符串时就有可能出现异常:Cannot get a STRING value from a NUMERIC cell
所以将需要读的excel文件中的每个Cell设置为String格式即可。