`

解决POI中DateUtil.isCellDateFormatted(Cell cell)不能判断中文日期的问题

阅读更多
根据客户提供的Excel,在导入日期数据时,发现获得的值是一串数字。客户设置的日期格式为yyyyy年MM月,当把日期格式设置为yyyy-MM时,就能够正确读取。我们用得是POI3.6,方法:org.apache.poi.ss.usermodel.DateUtil.isCellDateFormatted(Cell cell)。调用时总是返回false,经跟踪源码发现只要含有中文时间单位就不行(例如含有“年”或“月”等时间单位),故修改,增加了对中文时间单位的过滤,经测试判断正确。

方法:DateUtil.isADateFormat(int formatIndex, String formatString)
增加代码内容:
fs = fs.replaceAll("[\"|\']","").replaceAll("[年|月|日|时|分|秒|毫秒|微秒]", "");
附件为修改之后的可执行代码!
分享到:
评论
5 楼 xiang_mr 2016-05-11  
多谢啊,有时间再看源码。
4 楼 huiy 2015-05-05  
a8632935 写道
感谢楼主的经验分享,问题搞定

不客气
3 楼 a8632935 2015-04-08  
感谢楼主的经验分享,问题搞定
2 楼 huiy 2013-04-23  
zhutulang 写道
谢谢!不过你的源文件里面没有引入cell 、cellstyle,编译的时候花了我好长时间才发现。你要是直接把编译过后的class文件放进去就好了。

好的,我来添加上去。
1 楼 zhutulang 2013-04-02  
谢谢!不过你的源文件里面没有引入cell 、cellstyle,编译的时候花了我好长时间才发现。你要是直接把编译过后的class文件放进去就好了。

相关推荐

Global site tag (gtag.js) - Google Analytics