`
JavaCrazyer
  • 浏览: 3022549 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类

JAVA开发中POI和JXL区分

阅读更多

java操作excel表格,以前只知道POI。POI是apache公司的一个子项目,主要是提供一组操作windows文档的Java API。

 还有个JXL(java excel AIP),也是个开源项目


自从 MS 公开了 OFFICE 的编码格式以来,很多开源的组织都提供了对 Excel 支持读写操作的插件包。Java 世界里,Apache应该算是开源世界中的领头羊。他的Jakarta Project 中的 POI Project 就提供了对OFFICE的完美支持(不过最近好像他对Word的支持项目已经停止,而且公开在网站上圈人呢 ^^ ,如果你对Word文件的编码格式非常熟悉,可以发封邮件哦!)。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 。

就这两者的区别,主要谈下JVM虚拟机内存消耗的情况.
数据量3000条数据,每条60列.JVM虚拟机内存大小64M.
使用POI:运行到2800条左右就报内存溢出.
使用JXL:3000条全部出来,并且内存还有21M的空间.
可想而知,在对内存的消耗方面差距还是挺大的.
也许是由于JXL在对资源回收利用方面做的还挺不错的.
关于两者效率方面,没有研究过,我想这个也是基于大数据量而言的,数据量小的话基本上差别不大,也不难被发觉.但是大的数据量,POI消耗的JVM内存远比JXL消耗的多.但相比提供的功能的话,JXL又相对弱了点.所以如果要实现的功能比较复杂的情况下可以考虑使用POI,但如果只想生成一些大数据量可以考虑使用JXL,或者CSV也是一个不错的选择,不过CSV并不是真正的excel.

对excel的基本操作
jxl:最基本的excel api
poi:也是基本api,读取2M文件的时候没有jxl效率高,优点是能保持Excel里原有的宏(但不能用它写新的宏)。

分享到:
评论
1 楼 jinfengmusic 2011-07-11  
 

相关推荐

    POI和JXL读取EXCEL数据的工具类(POI支持2007)

    本主题将详细讲解如何使用Apache POI和JExcelApi(JXL)这两个Java库来读取Excel文件,以及提供的工具类`PoiUtil.java`和`JxlUtil.java`的使用方法。 Apache POI是一个流行的开源库,它允许开发者创建、修改和显示...

    Jxl和poi读取写入excel

    本文将深入探讨如何使用Jxl和Apache POI库来读取和写入Excel文件,同时会区分2007年之后的.xlsx格式(基于OpenXML)和2003及之前的.xls格式(基于BIFF)。 首先,让我们了解一下Jxl库。Jxl是Java Excel API的简称,...

    java利用jxl工具包操作Excel文件.doc

    Java中的JXL库是一个流行的第三方工具包,专门用于读写Microsoft Excel文件。它提供了一种简单的方式来处理Excel数据,使得开发者无需直接与低级API交互,就能方便地完成各种操作,如创建、读取和修改Excel工作簿和...

    Java处理Excel文件

    在Java开发中,处理Excel文件通常涉及到读取、修改、创建Excel文档的功能,而`JXL`(Java eXcel API)正是为这一需求提供了强大的支持。JXL是一个开源的Java库,允许开发者在Java应用中读取和写入Microsoft Excel...

    java的workbook类的jar包(用于操作Excel)

    在你的项目中,`jxlExcel`可能是指使用JExcelAPI库,这是另一个处理Excel的Java库,它的API和功能与Apache POI有所不同,但基本概念相似。不过,由于Apache POI提供了更广泛的支持和更新,现在更常用的是Apache POI...

Global site tag (gtag.js) - Google Analytics