poi-tl是基于poi的一个java库,能够比较方便的让我们填充word模板。 官网地址:官网地址
1、maven依赖:(poi-tl与poi的版本对应关系可见官网)
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
2.准备自己的word模板
如图所示,需要后台传入的地方就用{{}}这种格式把变量括起来。
3.代码 这是官网最简单的一个例子。 实际开发中,我们一般把模板放在resource路径下,所以获取路径的方式就需要注意了。
String path = new ClassPathResource("template/authorizationTemplate.docx").getURL().getPath();
如果你是最简单的word模板,那么到这边就完成了,但是我这边模板中是要插入一张图片的。图片的标签是 {{@var}},前面需要加一个@符号 上图所示,官网提供了几种示例,我一开始采用这种方法的时候确实可以把图片插入,但是格式上会有问题,图片只能显示一部分,并不能设置图片格式为word中的浮于文字上,所以我后来采用了另外一种方法,就是替换图片, 1.在模板中要插入图片的位置随便手动插入一张图片,并调好格式 2.在word中,右击这个图片,选择 编辑替换文字-替换文字(不同版本可能不一样),这个功能在wps中我没有找到,我用了在线word
然后在代码中就可以和普通文字一样操作,会自动把模板中的图片替换成你传进来的图片。 好了,需求到这已经完成了,希望可以帮到大家。
|