java导出Word文档(freemarker)超简单

1.先找出将要生成的Word文档模板(也是一份Word文档,只不过里边写了占位符)。

2.将模板文件另存为xml文件,转为xml之后并把后缀名改为ftl。

3.项目中引入freemarker依赖包。

4.声明map用于存放数据,这里map的key对应模板文件里的${key}.

5.声明Word文档的导出公共类。

public class WordUtil {
	public static void word(String ftl,String tb,String ryname,Map<String, Object> map) throws TemplateException, IOException{
		HttpServletResponse response = ServletActionContext.getResponse(); 
		response.reset(); 
		Configuration configuration = new Configuration();
        configuration.setDefaultEncoding("utf-8");
        //获取模板所在的路径
        configuration.setDirectoryForTemplateLoading(new File("D:/template/"));
        //以utf-8的编码读取ftl文件
        Template t =  configuration.getTemplate(ftl,"utf-8");
        String fileName = URLEncoder.encode(tb+"-"+ryname,"UTF-8") + ".doc";
        //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
        response.setContentType("multipart/form-data");
        //2.设置文件头:最后一个参数是设置下载文件名(假如我们叫a.pdf)
        response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);
        Writer out1 = new BufferedWriter(new OutputStreamWriter(response.getOutputStream(), "utf-8"),10240);
        t.process(map, out1);
        out1.close();
	} 

}

6.将存数据的map传入这个静态方法中,运行即可,效果是可以弹出下载选择窗口,选择下载位置。

注:如果是list需要循环:

ftl文件:

后台存数据:

map的key列表名称和ftl文件的列表名称一致。

2.复选框打钩:

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值