poi-tl简易版

概述

poi-tl,简单的说,就是通过一些标记,如{{var1}}、{{var2}}等,放到你指定的word模板里,然后去读取替换这些值,再输出填充数据后的word,可以做生成报表的功能。

一、引入pom

          <!--  模版下载      --> 如果JDK版本为17以上一定要不用第二块依赖。
<dependency>
    <groupId>com.deepoove</groupId>
    <artifactId>poi-tl</artifactId>
    <version>1.10.0</version>
</dependency>


 <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>4.1.2</version>
        </dependency>

二、准备工作

在D盘,自己创建两个文件夹,一个是用来存储模板文件,另一个是用来存储生成的文件
我这里是在D盘
D:\cssj\存放模板
D:\cssj\template\word 存放生成的文件。

三、案例

一个很简单的案例

首先创建一个模版为complateetest.docx(一定要是docx)

代码模版:

 /**
     * 测试模版下载
     *
     * @return 返回结果
     */
    @GetMapping(value = "testdoc")
    public ApiResponse<String> testdoc() throws IOException {
        //存放要填充的数据
        Map<String, Object> datas = new HashMap<>();
        //模版地址
        String templateFilePath = "d:/cssj/";
        //生成文件的保存地址
        String destFilePath = "d:/cssj/template/word";
        //文字 这里介绍两种数据填充方式
        //1.可以设置一些通用样式
        datas.put("var1", Texts.of("内容1"));
        datas.put("var2", new TextRenderData("000000", "内容3"));
        //2.文字可以通过Texts创建,也可以使用对象new TextRenderData("000000", "Sayi")
        datas.put("var3", new TextRenderData("000000", "内容3"));
        datas.put("var4", new TextRenderData("000000", "内容3"));
        //渲染文件
        XWPFTemplate compile = XWPFTemplate.compile(templateFilePath + "templateetest.docx");
        compile.render(datas);
        //输出为文件,指定输出文件名
        compile.writeToFile(destFilePath + "out_test02.docx");
        return ApiResponse.success();
    }

生成的报告(简单版,之后会更新真正的检查报告)

四、注意

1、如果是JDK版本问题,只需要导入第一个依赖即可;

2、如果需在公司实现,需要进行解密word模版;

3、word一定要是docx,否则无法解析;

4、如果最后还不成功,需要看一下poi-tl版本的问题(我最后失败的原因就是这个)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值