java导出word(Freemarker)

导出Word

我们在做模板的时候最好用 word 2003版来做,如果用07或10做模板,在2003打开是以XML的开式打开的

在word里输入内容,用${}作为占位符


2.将文档保存成XML格式

 


3.将保存好的方档用文本编辑器打开,查找到所有的占位符,修改占位符中的内容。


Freemarker导出Word

public class ModuleWord implements IModuleWord

{

       /*
       *Map<String,Object> dataMap 数据
       *String wordTemplatePath    模板名称 personalInfo.xml
       *File outFile  File outFile = new File("AAA.doc")
       */
       public void writeWord(Map<String,Object> dataMap,String wordTemplatePath,File outFile)
       {
              Configuration configuration = new Configuration();
              configuration.setDefaultEncoding("UTF-8");
              Writer outWriter = null;
              //获取模板路径  部署后模板路径 WEB-INF\classes\export
              //String url = (IModuleExcel.class).getClassLoader().getResource("/export/").getFile();
              String url = "D"\\export\\";
              try
              {
                     configuration.setDirectoryForTemplateLoading(new File(url));
                     //加载模板
                     Template template = configuration.getTemplate(wordTemplatePath);
                     outWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
                     template.process(dataMap,outWriter);
                     outWriter.close();
              }catch(Exception e){
                     outWriter.close();
                     e.printStackTrace();
              }
       }

       public static void main(String[] args)
       {

              //Map 的Key与模板中的点位符关联,用Map的value去替换占位符
              Map<String,Object> dataMap = new HashMap<String,Object>();
              dataMap.put("name","张三");
              dataMap.put("sex","男");
              dataMap.put("age","20");
              ModuleWord moduleWord = new ModuleWord();
              File outFile = new File("D:/AAA.doc");
              moduleWord.writeWord(dataMap,"xx.xml",outFile);
       }
}


导出结果


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值