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官网):

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVpaHVpam9y/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

584" alt="" style="border:0px; max-width:100%; color:rgb(0,0,0)">

       非常明显,2007版excel在读写方面POI做的更好,2003版在海量数据写入方面支持不够。所以在设计系统的导入、导出功能时,应该优先考虑2007版。

        在系统导入、导出功能优化的过程中,应该遵守“先明白性能瓶颈,再分析、确定、实施调优方案”的思路,不要想当然的以为性能就出如今POI上。非常有可能性问题就出现准备数据的过程中(如查询数据、转换格式)。理清思路。不盲目推測,是性能优化的首要步骤,谨记!


版权声明:本文博客原创文章。博客,未经同意,不得转载。

POI使用汇总的更多相关文章

  1. Java -- POI -- 随笔汇总

    1. 判断指定的单元格是否是合并单元格 /** * 功能:判断指定的单元格是否是合并单元格 * 原理:excel中的合并单元格其实就是首单元格,只不过该单元格增加了 rowspan和colspan两个 ...

  2. java poi reader常用API汇总

    注意:(1)判断行的最大数量建议使用sheet.getLastRowNum();(2)判断每行最大列数建议使用row.getLastCellNum(); [JAVA]特别注意,POI中getLastR ...

  3. java使用poi包将数据写入Excel表格

    1.Excel相关操作代码 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcept ...

  4. Apache POI使用详解

    Apache POI使用详解 1.POI结构与常用类 (1)POI介绍 Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案 ...

  5. 自己封装的poi操作Excel工具类

    自己封装的poi操作Excel工具类 在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完 ...

  6. POI使用详解

    Apache POI使用详解 1.POI结构与常用类 (1)POI介绍 Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案 ...

  7. 【南阳OJ分类之语言入门】80题题目+AC代码汇总

    小技巧:本文之前由csdn自动生成了一个目录,不必下拉一个一个去找,可通过目录标题直接定位. 本文转载自本人的csdn博客,复制过来的,排版就不弄了,欢迎转载. 声明: 题目部分皆为南阳OJ题目. 代 ...

  8. 自己的包poi操作Excel工具

    在前面的文章<使用poi读写Excel>中分享了一下poi操作Excel的简单演示样例.这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完毕的功能是:读取Excel.汇总E ...

  9. NPOI office 组件资料汇总 (excel, word)

    POI 是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 的文件,支持的文件格式包括xls, doc, ppt等. NPOI 是POI的.net 版本. 最新 ...

随机推荐

  1. 性能是全新的 SEO

    作为一个前端project师,那不只就是公开地处理那些美丽的html5, css3 和javascript特效.小而重要的一部分工作就是要让项目朝着代码稳定和代码标准方向进展.设计.信息结构以及后台限 ...

  2. Linux新手命令

    给老婆写了一份速成培训教材--最经常使用的命令及解释.当然每一个人工作内容不同,经常使用命令也不同,这仅仅是我的个人经验,并且要考虑到接受者的基础. ls:列出文件夹下的内容,类似于dos下的dir. ...

  3. python进阶八_警告和异常

    心情有点纠结,怎么说呢,倒不是由于其它学习上的事情,反而是由于生活上狗血的剧情逼着人偏离,渐行渐远,人跟人之间有误会也是正常的,可能是由于交流不够,彼此不够了解吧,希望能尽快度过这一段纠结的日子,简单 ...

  4. Java Web整合开发(78) -- Struts 1

    在Struts1.3中已经取消了<data-sources>标签,也就是说只能在1.2版中配置,因为Apache不推荐在 struts-config.xml中配置数据源.所以建议不要在st ...

  5. 《Java程序书面采访猿收藏》之 instanceof的作用是什么

    instanceof它是Java二元运算语言,它的作用是推断对象变量引用被指向的类型是一类(或接口.抽象类.父亲)示例.即,对象是否是它的一个实例离开它的类的权.返回boolean数据类型. 常见的使 ...

  6. 【PullToRefresh 系列基本用法】 Android装上拉下拉刷新控制具体的解释

    转载请注明:http://blog.csdn.net/duguang77/article/details/40921601 作者信息: Chris Banes大神详情:https://github.c ...

  7. Nginx各版本的区别

    Nginx官网提供了三个类型的版本Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版Stable version:最新稳定版,生产环境上建议使用的版 ...

  8. (五岁以下儿童)NS3样本演示:桥模块演示样品csma-bridge.cc凝视程序

    (五岁以下儿童)NS3:桥模块演示样品csma-bridge.cc凝视程序 1.Ns3 bridge模csma-bridge.cc演示示例程序的目光 // Network topology // // ...

  9. 写你自己struts1框架

    前言 文本 它们的定义Struts1 commons-digester.jar解析XML 实现XML标签到对象的转换 1.依据目标XML的结构定义解析规则文件 參照rule.xml 2.创建集合对象接 ...

  10. Android-管理Activity生命周期 -暂停和恢复一个Activity

    在正常的使用app时,前台的activity有时候会被可见的组件阻塞导致activity暂停.比如,当打开一个半透明的activity(就像打开了一个对话框),之前的activity就会暂停.只要ac ...