【JXls推荐学习】jXLS - 用模板产生Excel报表

这将会是一个系列文章,介绍我们在开发过程中用到的一些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输出
Java代码:
1. List departmens = new ArrayList();  
2. // initilize list of departments in some way  
3. Map beans = new HashMap();  
4. beans.put("departments", departments);  
5. XLSTransformer transformer = new XLSTransformer();  
6. transformer.transformXLS(templateFileName, beans, destFileName); 
这个就是输出的结果:


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

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

和action result
Java代码 
1. <result name="success" type="excel">foo/bar.xls</result> 
=================相关Lib分割线=================

excelutils ( http://excelutils.sourceforge.net/ ) 也是一个类似的项目,它本身已经提供了和webwork的集成,但是没有支持多个sheet渲染的功能,而且没有jXLS活跃。jXLS在最新版本里面还提供了读取Excel的简便方法。
你给我站住
这两天学习JXls开发文档,太谢谢版主的这篇文章了,将是我这方面的启蒙学习材料。

你可能感兴趣的:(.net,xml,struts,Excel,Webwork)