freemarker模板生成word文件

项目中首先引入freemarker的jar包,下载链接:http://download.csdn.net/download/pnljg/2736572

1、用word文档制作好模板 ceshi.docx

2、将ceshi.docx文件另存为ceshi.xml文件

${name}、${tel}、${address}被拆分了,用notpad++打开ceshi.xml文件,将被拆分的数据重新修改,修改完以后将文件另存为ftl模板文件,ceshi.ftl  具体见下图

修改成如下

 

3、代码如下

 

public static void createFile(){
    	try {  
            //创建一个合适的Configration对象  
            Configuration configuration = new Configuration();  
            configuration.setDirectoryForTemplateLoading(new File("E:\\test"));  
            configuration.setObjectWrapper(new DefaultObjectWrapper());  
            configuration.setDefaultEncoding("UTF-8");   //这个一定要设置,不然在生成的页面中 会乱码  
            //获取或创建一个模版。  
            Template template = configuration.getTemplate("ceshi.ftl");  
            Map<String, Object> paramMap = new HashMap<String, Object>();  
            paramMap.put("name", "张三");  
            paramMap.put("tel", "19362789462");
            paramMap.put("address", "河南省平顶山市湛河区往东300米,豫森时代新城(李四代收)");
     
              
            Writer writer  = new OutputStreamWriter(new FileOutputStream("E:\\test\\success.doc"),"UTF-8");  
            template.process(paramMap, writer);  
              
            System.out.println("恭喜,生成成功~~");  
        } catch (IOException e) {  
            e.printStackTrace();  
        } catch (TemplateException e) {  
            e.printStackTrace();  
        }  
    }

4、如果数据需要循环

1)在xml文件中在需要循环的地方加入list标签,并在结束的位置加入list结束符,(如xml文件内容是压缩格式,可在https://c.runoob.com/front-end/710 地址中格式化,然后修改内容)

2)word文档中循环位置的名称要用以上list中起的别名blfsxx

3)输出效果如下

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值