首页 > 代码库 > POI使用总结
POI使用总结
POI是apache下一个进行office相关格式文件的读写开源工具。我们最近在使用这个框架实现Excel格式数据的导入和导出功能。这里进行一个使用总结。POI提供两种读写API模型:事件模型(eventmodel)和用户模型(usermodel)。
事件模型,基于流(stream)的方式实现,使用sax(simple api for XML)模型进行xml内容解析,对CPU和内存的消耗小,但使用复杂,且无法进行写操作。
用户模型,基于内存树(memory tree)的方式实现,使用DOM进行excel的解析,对CPU和内存的消耗大,但能够以面向对象的方式进行操作,使用简便,可读可写。
对于2007版excel,POI还提供了可缓存流的用户模型API,使用滑动窗口(sliding window)的方法控制缓存区的大小,实现对海量数据的读写。我在我的笔记本(i5双核,4G内存)上使用POI官方的例子测试10列*6万行的写入效率,当缓存为100行的时候只需要5秒,确实快。具体API的特性可以参考一下表格(来源于POI官网):
很明显,2007版excel在读写方面POI做的更好,2003版在海量数据写入方面支持不够,所以在设计系统的导入、导出功能时,应该优先考虑2007版。
在系统导入、导出功能优化的过程中,应该遵守“先明确性能瓶颈,再分析、确定、实施调优方案”的思路,不要想当然的以为性能就出现在POI上,很有可能性问题就出现准备数据的过程中(如查询数据、转换格式)。理清思路,不盲目猜测,是性能优化的首要步骤,谨记!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。