jfinal框架下使用freemarker生成excel报表实践

jfinal框架提供了对于freemarker模板引擎的支持,freemarker引擎支持后台数据向前台的映射,所在项目中页面展现使用的正是该框架。最近有需求,将数据导出为excel文件。搜集网上利用freemarker生成excel的教程,结合文件下载相关知识,实现了根据模板动态生成excel报表,并调用浏览器自带下载器进行下载的功能。
1. excel下创建如下模板,${}中为遍历数据List得到的单个记录对应的各个字段,由于jfinal中的数据表已通过addMapping映射到数据库,此处字段名为数据库中对应字段名。其中getNum(item.aID)为Model中根据表id获取数量的函数,本文所用的方法同样支持Model中函数结果的显示:
${}中为需要展示数据List下单个item各个字段列名
2. 另存为XML电子表格:
保存会弹出提示,选择是即可
3. 用notepad++等文本编辑器打开新创建的XML文件,修改XML文件如下标示位置,其中ExpandRowCount为数据行数+表头行数(固定值)。修改后保存,另存为ftl格式文件:
需要设定行数、添加freemarker遍历数据表语法
4. 添加通用模板解析类(参考文末链接):

    package util;  
    /** 
     * 模板解析实体类 
     */  
    import java.io.ByteArrayOutputStream;  
    import java.io.File;  
    import java.io.FileOutputStream;  
    import java.io.IOException;  
    import java.io.OutputStreamWriter;  
    import java.io.StringWriter;  
    import java.io.Writer;  
    import java.util.Map;  
    import freemarker.cache.StringTemplateLoader;  
    import freemarker.template.Configuration;  
    import freemarker.template.DefaultObjectWrapper;  
    import freemarker.template.Template;  
    import freemarker.template.TemplateException;  

    public class TemplateParseUtil {
     
        /** 
         * 解析模板生成Excel 
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值