poi-tl基本使用

321 阅读1分钟

poi-tl是一个基于poi的word模版引擎,有中文文档官方文档

入门

maven依赖

<dependency>
  <groupId>com.deepoove</groupId>
  <artifactId>poi-tl</artifactId>
  <version>1.12.2</version>
</dependency>

wrod模版

文件名称:template.docx

模版内容:

image.png

java代码

LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();

Configure config = Configure.builder()
        .bind("loop", policy).build();

ArrayList<Object> loop = new ArrayList<>();
for (int i = 0; i < 3; i++) {
    HashMap<String,String> m = HashMap.newHashMap(2);
    m.put("col1", "c1 "+i);
    m.put("col2", "c2 "+i);
    m.put("col3", "c3 "+i);
    loop.add(m);
}

XWPFTemplate template = XWPFTemplate.compile("template.docx",config).render(
        new HashMap<String, Object>(){{
            put("title", "Hi, poi-tl Word模板引擎");
            put("table", Tables.of(new String[][] {
                    new String[] { "00", "01" },
                    new String[] { "10", "11" }
            }).border(BorderStyle.DEFAULT).create());
            put("loop",loop);
        }});

template.writeAndClose(new FileOutputStream("output.docx"));

执行后输出的word

文件名称:output.docx

文件内容:

image.png