POI与JXL操作Excel的区别
2014-03-28 16:52
288 查看
POI为apache公司的一个子项目,主要是提供一组操作windows文档的Java API.
Java Excel俗称jxl是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。
就这两者的区别,主要谈下JVM虚拟机内存消耗的情况.
数据量3000条数据,每条60列.JVM虚拟机内存大小64M.
使用POI:运行到280
0条左右就报内存溢出.
使用JXL:3000条全部出来,并且内存还有21M的空间.
可想而知,在对内存的消耗方面差距还是挺大的.
也许是由于JXL在对资源回收利用方面做的还挺不错的.
关于两者效率方面,没有研究过,我想这个也是基于大数据量而言的,数据量小的话基本上差别不大,也不难被发觉.但是大的数据量,POI消耗的JVM内存远比JXL消耗的多.但相比提供的功能的话,JXL又相对弱了点.所以如果要实现的功能比较复杂的情况下可以考虑使用POI,但如果只想生成一些大数据量可以考虑使用JXL,或者CSV也是一个不错的选择,不过CSV并不是真正的excel.
自从 MS 公开了 OFFICE 的编码格式以来,很多开源的组织都提供了对 Excel 支持读写操作的插件包。Java 世界里,Apache应该算是开源世界中的领头羊。他的Jakarta Project 中的
POI Project 就提供了对OFFICE的完美支持(不过最近好像他对Word的支持项目已经停止,而且公开在网站上圈人呢 ^^ ,如果你对Word文件的编码格式非常熟悉,可以发封邮件哦!),当然除此之外,还有很多其他开源组织也对 Excel 的读写操作提供了很好的支持,其中简单而且实用的便是 Display-tag ,程序员根本就不需要考虑如何将数据合理地写入Excel中,这一切都是由其 Servlet 自动完成,但也正是由于他对程序员是透明的,因此为很多操作也带来了不便。在接下来的文字中我会介绍另外一种同样对Excel提供了完美支持的第三方插件
JXL ,Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。
Jakarta 的 POI Project 与
Java Excel API 在开源世界中可以说是并驾齐驱,但是也各有优劣,poi在某些细节有些小Bug并且不支持写入图片(poi其实可以写入图片,不过没有jxl来的方便,比较麻烦),其他方面都挺不错的;而JXL提供了对图片的支持(但是仅仅支持png格式的图片),问题就是对公式支持不是很好,但还是提供了简单的公式读取支持。因此你的项目中要选用什么样的第三方插件为完全由你的应用来决定。如果你的软件是跟财务有相当的关系的话,建议采用
POI Project,就我所在目前的项目来说由于用不到计算公式,而且很可能需要导出图片,因此,我的选择是 JXL 。
本文部分转自青鸟刘老师的博客
POI为apache公司的一个子项目,主要是提供一组操作windows文档的Java API.
Java Excel俗称jxl是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。
就这两者的区别,主要谈下JVM虚拟机内存消耗的情况.
数据量3000条数据,每条60列.JVM虚拟机内存大小64M.
使用POI:运行到280
0条左右就报内存溢出.
使用JXL:3000条全部出来,并且内存还有21M的空间.
可想而知,在对内存的消耗方面差距还是挺大的.
也许是由于JXL在对资源回收利用方面做的还挺不错的.
关于两者效率方面,没有研究过,我想这个也是基于大数据量而言的,数据量小的话基本上差别不大,也不难被发觉.但是大的数据量,POI消耗的JVM内存远比JXL消耗的多.但相比提供的功能的话,JXL又相对弱了点.所以如果要实现的功能比较复杂的情况下可以考虑使用POI,但如果只想生成一些大数据量可以考虑使用JXL,或者CSV也是一个不错的选择,不过CSV并不是真正的excel.
自从 MS 公开了 OFFICE 的编码格式以来,很多开源的组织都提供了对 Excel 支持读写操作的插件包。Java 世界里,Apache应该算是开源世界中的领头羊。他的Jakarta Project 中的
POI Project 就提供了对OFFICE的完美支持(不过最近好像他对Word的支持项目已经停止,而且公开在网站上圈人呢 ^^ ,如果你对Word文件的编码格式非常熟悉,可以发封邮件哦!),当然除此之外,还有很多其他开源组织也对 Excel 的读写操作提供了很好的支持,其中简单而且实用的便是 Display-tag ,程序员根本就不需要考虑如何将数据合理地写入Excel中,这一切都是由其 Servlet 自动完成,但也正是由于他对程序员是透明的,因此为很多操作也带来了不便。在接下来的文字中我会介绍另外一种同样对Excel提供了完美支持的第三方插件
JXL ,Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。
Jakarta 的 POI Project 与
Java Excel API 在开源世界中可以说是并驾齐驱,但是也各有优劣,poi在某些细节有些小Bug并且不支持写入图片(poi其实可以写入图片,不过没有jxl来的方便,比较麻烦),其他方面都挺不错的;而JXL提供了对图片的支持(但是仅仅支持png格式的图片),问题就是对公式支持不是很好,但还是提供了简单的公式读取支持。因此你的项目中要选用什么样的第三方插件为完全由你的应用来决定。如果你的软件是跟财务有相当的关系的话,建议采用
POI Project,就我所在目前的项目来说由于用不到计算公式,而且很可能需要导出图片,因此,我的选择是 JXL 。
本文部分转自青鸟刘老师的博客
相关文章推荐
- jxl 与poi 操作Excel区别
- Java程序员从笨鸟到菜鸟之(一百零五)java操作office和pdf文件(三)利用jxl实现数据导出excel报表以及与POI的区别
- Java程序员从笨鸟到菜鸟之(一百零五)java操作office和pdf文件(三)利用jxl实现数据导出excel报表以及与POI的区别
- Java Excel(JXL) 与POI(Apache POI) 区别
- 利用poi开源jar包操作Excel时删除行内容与直接删除行的区别
- POI与JXL 操作excel比较
- poi操作Excel getLastRowNum,getPhysicalNumberOfRows,getPhysicalNumberOfCells,getLastCellNum 区别
- JXL和POI操作Excel有何不同呢?
- 利用poi开源jar包操作Excel时删除行内容与直接删除行的区别
- jxl和poi操作excel有何不同呢?
- 学习笔记---excel 操作POI与JXL的比较
- java excel解析:poi与jxl的区别(excel版本问题:xls,xlsx)
- POI与JXL 操作excel比较
- java 操作 excel文件 jxl 与 poi 比较
- 使用JXL与POI操作EXCEL
- java操作excel——jxl和poi
- POI vs JXL(java操作Excel)之一
- java操作Excel一:POI与JXL的比较
- java操作excel——jxl和poi比较
- POI与JXL 操作excel比较