论坛首页 Java企业应用论坛

[我的工具箱] jXLS - 用模板产生Excel报表

浏览 26518 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-27  
这将会是一个系列文章,介绍我们在开发过程中用到的一些open source library,覆盖到的范围有Excel, Email, FTP, XML, Monitor等等

=================主要内容分割线=================

jXLS ( http://jxls.sourceforge.net/ ) 是一个用来产生Excel文件的library,它非常小巧而且易用,能够用一个Excel模板加上数据来渲染产生最终的Excel文件,比直接用POI这种底层的API来写要方便很多,尤其对于那些需要严格控制格式的Excel报表有非常大的帮助。

我们来看一下它文档上的例子,先准备好一个Excel模板:


这里用到forEach,outline,if这些tag,在它的文档里面有很详细的解释,如果输出结果要求很简单,也可以不需要tag。

然后准备好数据,放入到一个map,调用APi输出
List departmens = new ArrayList();
// initilize list of departments in some way
Map beans = new HashMap();
beans.put("departments", departments);
XLSTransformer transformer = new XLSTransformer();
transformer.transformXLS(templateFileName, beans, destFileName);

           
这个就是输出的结果:


可以看到产生一份这样复杂的Excel,用jXLS来实现是很轻松愉快的一件事情。

利用jXLS和webwork (struts 2)良好的可扩展性,我们可以将2者集成在一起,通过实现一个Result(见附件),我们可以把action的所有属性都放到jXLS所要用的map里面,让模板可以拿到action的属性,进行渲染输出,只需要在xwork.xml里面定义就可以了:
result type:
<result-type name="excel" class="package.name.JxlsResult"/>

和action result
<result name="success" type="excel">foo/bar.xls</result>


=================相关Lib分割线=================

excelutils ( http://excelutils.sourceforge.net/ ) 也是一个类似的项目,它本身已经提供了和webwork的集成,但是没有支持多个sheet渲染的功能,而且没有jXLS活跃。jXLS在最新版本里面还提供了读取Excel的简便方法。
   发表时间:2007-04-27  
顶一个,不知道有没有单元格合并或者动态着色功能
0 请登录后投票
   发表时间:2007-04-27  
非常之好,给客户的报表用这个最好不过了。
0 请登录后投票
   发表时间:2007-04-27  
这个真不错。
感觉有点类似用宏生成EXCEL报表。
不知道它支持图片不?
0 请登录后投票
   发表时间:2007-04-27  
看看,正为excel报表发愁呢。
能不能根据数据自动新建sheet,excel有行限制呢。
0 请登录后投票
   发表时间:2007-04-27  
感觉是个好东西,用一下,看看和org.apache.poi比有哪些优点和缺点.org.apache.poi的一个问题就是,如果表格样式过于复杂,往往导致代码量过大,重构又觉得得不偿失.jXLS貌似可以解决这个问题.

By the way

Quake兄,看你的jert实在是杀了我不少脑细胞阿,本来就不多阿...,不晓得有没有相关介绍文档阿?

最后八卦一下,兄台你是否是做报表业务的,看你这方面好强阿.
0 请登录后投票
   发表时间:2007-04-28  
我以前也实现过这样的一个东东,后来发现jxls之后就一直用它了,可惜没有找到与此类似的word处理库,倒是有个什么ooreport和http://rtftemplate.sourceforge.net,但都很难用
0 请登录后投票
   发表时间:2007-04-28  
看上去真帅,如果下次再用到了EXCEL报表,就用这个了
0 请登录后投票
   发表时间:2007-04-28  
这个东东确实好用.以后就用这个代替POI了.
0 请登录后投票
   发表时间:2007-06-11  
现在正好用上了,poi HSSF加上jxls来操作excel报表,确实很好用,省了不少麻烦。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics