当前位置:   article > 正文

Word模板内容替换工具类_xwpftemplate 替换

xwpftemplate 替换

工作中经常遇到需要操作word模板文档,生成多份文档的场景。

百度了一下找到一个不错的第三方Jar包。

写了份测试代码,亲测有效。

第一步:添加第三方jar (deepoove)

  1. <dependency>
  2. <groupId>com.deepoove</groupId>
  3. <artifactId>poi-tl</artifactId>
  4. <version>1.9.1</version>
  5. </dependency>

第二步:编码及使用说明

  1. /**
  2. * 模板替换
  3. * @param templateFilePath 模板文件 存放路径
  4. * @param resultFilePath 替换问的结果文件 存放路径
  5. * @param datas 需要替换的数据
  6. *
  7. */
  8. public static void replaceTemplate(String templateFilePath,String resultFilePath,Map<String,String> datas){
  9. try {
  10. System.out.println("※※※ start replaceTemplate templateFilePath="+templateFilePath +" resultFilePath= "+resultFilePath);
  11. XWPFTemplate.compile(templateFilePath).render(datas).writeToFile(resultFilePath);
  12. // 图片替换
  13. // datas.put("urlImg", Pictures.ofUrl("http://deepoove.com/images/icecream.png", PictureType.PNG).size(300, 300).create());
  14. System.out.println("※※※ replace end ");
  15. } catch (Exception e) {
  16. e.printStackTrace();
  17. }
  18. }

         Word文档模板定义占位字符:  {{name}}
         datas 添加需要替换的数据: data.put(name,'张三');
         调用方法后,{{name}} 被替换为 张三

第三步:测试

  1. public static void main(String[] args) throws IOException {
  2. String templateFilePath = "D:\\dev\\pdf\\20211108_模板.docx";
  3. String resultFilePath = "D:\\dev\\pdf\\"+ UUID.randomUUID()+".docx";
  4. // 组装需要替换的数据
  5. Map<String, String> datas = new HashMap<>();
  6. datas.put("B_info", "北京科技有限公司");
  7. datas.put("A_address", "陕西省西安市");
  8. datas.put("date", DateUtil.getCurrentDate());
  9. // 调用替换方法
  10. replaceTemplate(templateFilePath,resultFilePath,datas);
  11. System.out.println(" ------------------------ 替换完成 ");
  12. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/685364
推荐阅读
相关标签
  

闽ICP备14008679号