POI高效操作Excel

POI是apache下一个进行office相关格式文件的读写开源工具。

POI提供两种读写API模型:事件模型(eventmodel)和用户模型(usermodel)。

## 事件模型

基于流(stream)的方式实现,使用sax(simple api for XML)模型进行xml内容解析,对CPU和内存的消耗小,但使用复杂,且无法进行写操作。

## 用户模型

基于内存树(memory tree)的方式实现,使用DOM进行excel的解析,对CPU和内存的消耗大,但能够以面向对象的方式进行操作,使用简便,可读可写。

对于2007版excel,POI还提供了可缓存流的用户模型API,使用滑动窗口(sliding window)的方法控制缓存区的大小,实现对海量数据的读写。

![POI操作性能对比](http://poi.apache.org/resources/images/ss-features.png)

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

同时,导出功能需要最终写文档到Excel中,使用2007及以上版本的SXSSF对象来操作写Excel性能比HSSF高很多。

## 读取XLSX例子

[读取XLSX例子](https://myjeeva.com/read-excel-through-java-using-xssf-and-sax-apache-poi.html)

[读取xlsx例子](https://github.com/jeevatkm/excelReader)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • POI操作Excel Excel简介一个excel文件就是一个工作簿workbook,一个工作簿中可以创建多张工作...
    灰气球阅读 4,750评论 2 48
  • 该文章为本系列的第一篇第二篇为 : Java POI操作Excel(Event Model)第三篇为 : Java...
    mmlmml阅读 13,510评论 6 21
  • 该文章为本系列的第二篇第一篇为 : Java POI操作Excel(User Model)第三篇为 : Java ...
    mmlmml阅读 9,486评论 0 5
  • 使用首先需要了解他的工作原理 1.POI结构与常用类 (1)创建Workbook和Sheet (2)创建单元格 (...
    长城ol阅读 8,522评论 2 25
  • Hello 简书! Markdown好评,代码高亮好评,Tab默认2空格差评0v0 HelloWorldHello...
    linyxus阅读 142评论 0 0