word模板引擎(一)简单使用

2 篇文章 0 订阅
2 篇文章 0 订阅

背景

最近我手上有个基因检测项目,采集用户基因分析出相应的基因后,根据用户的基因和选择套餐出具不同的检测报告,报告输出为PDF。之前模板的编写和报告的输出都是由开发人员编写网页完成的,为了让客户能够自己编写报告,不需要我们开发人员将设计好的报告重新用网页写一遍,我想到了再word中嵌入模板引擎,直接在word中进行简单的逻辑判断。现在在市面上找到的开源库都是通过替换变量的方式实现word模板的功能的,我的想法是word把内容样式都做完,我们只需要控制显示哪些内容,替换变量,重复哪些即可。

简介

word-tpl默认使用的模板引擎是Freemarker,也可以自己扩展替换掉默认的模板引擎。
word-tpl支持自定义方法指令,类库会采用SPI方式进行扩展方法的加载,也支持手动添加。
源码地址:https://github.com/xuejike/word-tpl

功能

  • 变量替换 (已完成)
  • 段落内 if 判断(已完成)
  • 段落间 if 判断(已完成)
  • 单元格内 if 判断(已完成)
  • 段落内的for循环(正在开发)
  • 段落间的for循环(正在开发)
  • 表格间的for循环(正在开发)

使用效果

word模板内容

在这里插入图片描述

输出的结果

在这里插入图片描述

使用方式

引入类库

repositories {
    maven { url 'https://jitpack.io' }

}

dependencies {
    implementation 'com.github.xuejike.word-tpl:word-tpl-core:0.1'
}

生成word文档

 public class TestMain {
     public static void main(String[] args) throws IOException, TplBuildException {
         String tplFile = "E:\\project\\word-tpl\\word-tpl\\var-tpl.docx";
         String outFile = "E:\\project\\word-tpl\\word-tpl\\var-tpl-out.docx";
 
        HashMap<String, Object> map = new HashMap<>();
        map.put("xuejike","薛纪克");
        //使用Freemarker模板引擎进行解析
        WordTplUtils wordTplUtils = new WordTplUtils(new FreemarkerWordTplFactory());
        // 每次构建都会重新生成word-tpl脚本
        wordTplUtils.buildWord(new File(tplFile),outFile,map);
        // 提前构建脚本,并添加到模板中,以后使用模板名称进行生成word即可,可以避免每次重新构建word脚本
        String script = wordTplUtils.buildTplScript(tplFile);
        wordTplUtils.addTplScript("test",script);
        wordTplUtils.buildWord("test",outFile,map);
     }
 }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值