随笔-7  评论-0  文章-0  trackbacks-0
鉴于windows操作系统及office办公平台,在个人桌面上的垄断地位,使得excel/word/ppt等文件被广泛应用。通过java读 写excel文档是编程开发中常见问题,比如在swing和web应用中经常遇到。目前通过Java操作Excel的类库大致有[1]:
    1、POI,大名鼎鼎的Apache上的项目。
    2、Java Excel API(亦简称jexcelapi或jxl),纯java的excel开发包。
    3、jexcel,jxl的衍生品,适宜于Swing开发。
    4、jxls,依赖于POI,基于excel模板的可定制化报表输出工具。
    5、Jacob (Java COM Bridge),顾名思义,是采用桥接方式访问COM组件及Win32类库。
    6、其它方式,如数据导出到html格式的表格中,再另存为xls文档

    使用比较
    POI、jxl、jexcel可以划归为一类,通过java封装了Excel的操作,所以需要折腾Workbook,Sheet,Cell等对象,顾及excel的每个细节。这种方式,优点是功能强大。缺点是代码冗长拖沓,阅读困难。
    jxls虽然是基于POI,但其最大突破在于预先定制好Excel模板(如字段、格式、图表等),运行期绑定数据即可呈现多样化报表。其优点是编程轻松,功能灵活方便。缺点是对于过于动态化报表不太适用(如输出字段、格式非常多变)。
    Jacob和COM模型粘在一起,自然被纯java的拥趸者所不顾。所以,应用不是很广。
 

    jxls初体验

    业务部门经常需要我们技术部给推送一些定期报表,这些报表的字段及格式都是预定义好的。显而易见,在这种场合,jxls是再适合不过的工具了。只要定义好 输出报表的模板,绑定查询出的数据即大功告成。日常维护起来也很方便,比如加减字段、改变展现方式、嵌入excel自动图表等都能轻松搞定。
    百闻不如一见,从jxls主页[5]上下载了jXLS v.0.9.6(不知何故,自20080409日后没有再更新),安装起来运行其中自带的范例。自带范例可以通过maven来编译,偶试了试编译成功,但 不知道怎么运行范例。后来没辙,把范例导到eclipse中进行编译运行。编译时下载了最新的poi-3.2-FINAL-20081019.jar,结 果编译成功,但运行报错
    java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFCell.setEncoding(S)V
    后来换成poi-3.1-FINAL-20080629.jar,又报别的错,最后好不容易从CSDN上下载了poi-3.0.1-FINAL- 200705.jar,总算运行成功。体验了一下,效果非常好。让人不解的是,在POI主站上只能下载到最新的POI3.2版本,老版本就是找不到。

    参考资料
    1、http://schmidt.devlib.org/java/libraries-excel.html,java操作Excel的类库清单
    2、http://jakarta.apache.org/poi/,POI主页
    3、http://www.andykhan.com/jexcelapi/index.html,jxl主页
    4、http://www.teamdev.com/jexcel/index.jsf,jexcel主页。
    5、http://jxls.sourceforge.net/,jxls主页
    6、http://jacob-project.wiki.sourceforge.net/,Jacob主页

posted on 2009-07-14 11:24 sillyha 阅读(2598) 评论(0)  编辑  收藏 所属分类: others

只有注册用户登录后才能发表评论。


网站导航: