不說(shuō)那么多原因,直接上個(gè)例子,準(zhǔn)備兩個(gè)模板
主模板 main.docx 表格列表

1644667591.png
這里需要注意 {{+tables}}是用來(lái)顯示子模板內(nèi)容的
子模板 sub.docx 生成單個(gè)表格

image.png
pom.xml
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.7.3</version>
</dependency>
測(cè)試代碼
子表格示例就是網(wǎng)上抄的,主要是出效果
public static void main(String[] args) throws Exception {
Map<String, Object> data = new HashMap<>();
List<Map> params = Lists.newArrayList();
for(int i = 0 ; i < 10 ;i ++){
//子模板內(nèi)容
Map<String, Object> table = new HashMap<>();
RowRenderData header = RowRenderData.build(new TextRenderData("FF0000", "姓名"), new TextRenderData("FF0000", "學(xué)歷"));
RowRenderData row0 = RowRenderData.build("張三"+i, "研究生"+i);
RowRenderData row1 = RowRenderData.build("李四"+i, "博士"+i);
List<RowRenderData> rows = new ArrayList<>();
rows.add(row0);
rows.add(row1);
table.put("title","測(cè)試信息"+i);
table.put("table",new MiniTableRenderData(header,rows));
params.add(table);
}
//嵌入
DocxRenderData docxRenderData = new DocxRenderData(new File("D:/ttt.docx"),params);
data.put("tables" , docxRenderData);
data.put("time","1111");
data.put("name","2222");
//主模板
XWPFTemplate template = XWPFTemplate.compile("D:/template2.docx")
.render(data);
FileOutputStream out;
//結(jié)果
out = new FileOutputStream("D:/res.docx");
template.write(out);
out.flush();
out.close();
template.close();
}
輸出結(jié)果

image.png