POI 的兼容实现 兼容03和07的写法
在介绍该写法之前,为了不在此的走错误的方式,有以下总结点:
1.对POI的使用需要进行运行时异常的捕捉,否则连错误都不知道哪里出的。
2.POI对中文日期,也就是通过格式刷读取的内容都会作为数字去识别,对中文格式的样式不支持。
3.需要自己结合判断excel的日期和时间的区别,否则给出的结果也不是期望值。比如:12:00:00和1970-05-01都是敏感日期,也是作为日期和时间分割的临界点。
4.结合POI可以做出很强大的数据映射算法,该强大指的是从实用角度,灵活方便的对数据进行java的数据存储映射进行数据匹配工作。
配置jar文件列表:
POI-3.6-20091214.jar
POI-contrib-3.6-20091214.jar
POI-ooxml-3.6-20091214.jar
POI-ooxm.-schemas-3.6-20091214.jar
POI-scratchpad-3.6-20091214.jar
log4j-1.2.14.jar
(另外由于POI需要调用其他的jar包但POI官网也没提供下载,通过捕捉运行时异常才发现缺少该jar包)
xmlbeans-2.3.0.jar
经过了一段时间的测试 :该POI 存在一些性能问题如下
1.过多的sheet 页读取 wb.getNumberOfSheets() 会出现
java.lang.OutOfMemoryError: Java heap space
2.POI会对 2007 的excel 文件 读取生成一个 等大小的临时文件在
X:\apache-tomcat-5.5.26\temp\poifiles 下,反编译后读取源码发现,并没有对该文件进行删除。
3.针对之前写的代码,近期我会对其进行性能测试和改进。 1 楼 JonyUabka 2011-09-27 POI 尝试过如果读取2007 Excel 文件 的sheet 页数超过 10以上就会很慢,30个就会 out of memory 但 03 不会出现该种问题。 POI 两种版本测试都会如此, 3.6与3.7。 唯一比较稳定的版本为 3.6 该版本的 读取 03Excel 的sheet页的个数 相当稳定,但 3.7却没有想象的那么好。