导出Excel数据POI与JXL的实战性能对比

编程入门 行业动态 更新时间:2024-10-06 18:24:26

导出Excel数据POI与JXL的<a href=https://www.elefans.com/category/jswz/34/1769775.html style=实战性能对比"/>

导出Excel数据POI与JXL的实战性能对比

目前我所负责的系统中有POI和JXL两种方式的导出数据实现。 
项目初期数据量不大一般使用JXL的方式,可以满足需求,后来在进行一些盘点,等月度出入库查询报表统计的时候出现了超过最大sheet行的错误,另外堆内存也被占满了。 
所以后面就紧急将部分重要功能,要导的数据量大的几个模块改造成POI的方式了。但是仍然跑的很慢,没有了解POI的另外一种实现方式,后来对POI的工具类,以及POI的导出实现做了部分修正,顺利完成升级。

我的初步了解: 
JXL:支持比较低版本的excel,比如Excel 95 ,97 ,2000,2003 
由于Excel版本比较低,导致最大行有限制,无法导出65535以上量级的数据 
对于内存,和时间的花费也比POI基于内存+磁盘的方式高。

网友技术说明 
1. 读取Excel公式(可以读取Excel 97以后的公式) 
2. 生成Excel数据表(格式为Excel 97) 
3. 支持字体、数字、日期的格式化 
4. 支持单元格的阴影操作,以及颜色操作 
5. 修改已经存在的数据表 
6. 是最基础的excel api 
7. 小文件读取效率比较高 
8. 跨平台 
POI技术说明

  1. 能保持Excel里原有的宏(但不能用它写新的宏)。
  2. 不支持跨平台(主要就是Java语言)
  3. 在一些业务场景中代码相对复杂,但是API丰富,支持多种模式的读写。
  4. 支持比较新版本的excel.
  5. 读写的时候比较占内存。
  6. 读写的时候比较占内存。
  7. 支持大数量大文件的读写操作。但是需要熟悉API。

总体来说,对于简单的单表excel导入导出的需求,建议使用JXL。数据量稍微小点,占用内存少,速度快。 
对于报表类的,涉及月份数据量,多表数据聚合在一起建议使用POI。

下面简要介绍一下POI的两种读写模式。 
首先要知道poi中的几个概念与excel是什么关系 
WorkBook:一个excel文件 
Sheet:页签,工作表,代表一个excel文件的一张表 
Cell:一张表中的一个单元格 
CellStyle:单元格的样式 
Row:excel表中的一行 
上面的每个抽象出来的对象都被POI封装好了,声明了接口,有不同的实现方式。

WorkBook: 
 
Sheet: 
 
Cell: 
 
Row 

基本有三种实现模式,每种实现模式有不同的用途:

XSSFWorkbook,SXSSFWorkbook,HSSFWorkbook, 
HSSFSheet,SXSSFSheet,XSSFChartSheet,XSSFDialogsheet, 
XSSFCell,SXSSFCell,HSSFCell 
有三种实现方式: 
XSSFCell:基于内存 
SXSSFCell:基于内存+磁盘的写入方式 
HSSFCell:高水平的写入方式,对于单元格的数据类型有很高的限制,比如:字符串格式只有字符,不能有数字

更多推荐

导出Excel数据POI与JXL的实战性能对比

本文发布于:2024-02-19 15:52:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1764626.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实战   性能   数据   Excel   JXL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!