`
ivan
  • 浏览: 179342 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

以Excel作为模板产生Excel

    博客分类:
  • java
阅读更多
jxls:http://jxls.sourceforge.net/,产生简单的excel报表还是挺好用到,感觉类似于jsp里面使用el和jstl,不再需要数格子、画格子。

主要类库:commons-jexl.jar和jxls-core.jar。

代码例子
	Map params=new HashMap();      
        response.setContentType("application/vnd.ms-excel");
        response.setHeader("Content-Disposition","attachment; filename=baseinfo.xls");
        XLSTransformer transformer=new XLSTransformer();
        InputStream is=new BufferedInputStream(new FileInputStream(getServletContext().getRealPath(
                "/MISPackWeb/TeacherManagement/templates/baseinfo.xls")));
        HSSFWorkbook workbook=transformer.transformXLS(is,params);
        OutputStream os=response.getOutputStream();
        workbook.write(os);
        is.close();
        os.flush();
        os.close();  

其常用标签。类似jstl和el,但是可以调用方法。
<jx:forEach items="${requirementItems}" var="item">		
   ${item.sortOrder}、${item.title}(${item.description})		
</jx:forEach>	
<jx:if test="${department.chief.payment > 2000.0}">
   Chief Name: ${department.chief.name}
</jx:if>	
${researchOrientation.cnName.trim()}


已知问题
  • 页脚里有中文的话会乱码
  • 标签前面不能有空格
  • 不支持条件运算符(jexl本身的问题,见http://issues.apache.org/jira/browse/JEXL-19)
分享到:
评论
3 楼 bbjliuyue 2012-10-08  
这个挺好的.支持下.
2 楼 ivan 2009-04-18  
不知道你是用什么画模板呢?比较复杂的话用jxls处理也是力有不逮啊。jxls依赖commons-jexl来处理el也不好,commons-jexl太弱了。
1 楼 朗拿颠老 2009-04-18  
目前还是在数格子中....比较烦,好的地方是,可以先画出模板

相关推荐

Global site tag (gtag.js) - Google Analytics