java poi-tl 根据模板生成word合并多个word文档
Posted mqy1023
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java poi-tl 根据模板生成word合并多个word文档相关的知识,希望对你有一定的参考价值。
一、导入依赖
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.12.0</version>
</dependency>
二、根据模板生成word,合并多个word的代码
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.xwpf.NiceXWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class POITlWordTest
/**
* 根据模板生成word
*/
public static void gen()
/**
* 通过map存放要填充的数据
*/
Map<String, Object> data = new HashMap<>();
data.put("title", "Java 全栈知识体系");
data.put("importants", "hao-kjsdjkdsjk 重点在今后的实际的就是Java重点在今后的实际的就是Java重点在今后的实际的就是Java");
data.put("normal", "重点在今后的实际的就是Java 全栈知识体系,重点在今后的实际的就是Java 全栈知识体系重点在今后的实际的就是Java 全栈知识体系,重点在今后的实际的就是Java 全栈知识体系重点在今后的实际的就是Java 全栈知识体系重点在今后的实际的就是Java 全栈知识体系重点在今后的实际的就是Java 全栈知识体系重点在今后的实际的就是Java 全栈知识体系重点在今后的实际的就是Java 全栈知识体系重点在今后的实际的就是Java 全栈知识体系重点在今后的实际的就是Java 全栈知识体系重点在今后的实际的就是Java 全栈知识体系重点在今后的实际的就是Java 全栈知识体系重点在今后的实际的就是Java 全栈知识体系");
XWPFTemplate template = XWPFTemplate.compile("C:\\\\Users\\\\Administrator\\\\Desktop\\\\tpl.docx").render(data);
try
FileOutputStream out = new FileOutputStream("C:\\\\Users\\\\Administrator\\\\Desktop\\\\test.docx");
template.write(out);
out.flush();
out.close();
template.close();
catch (IOException e)
e.printStackTrace();
/**
* 合并word
*/
public static void concat()
try
NiceXWPFDocument main = new NiceXWPFDocument(new FileInputStream("C:\\\\Users\\\\Administrator\\\\Desktop\\\\tpl.docx"));
NiceXWPFDocument sub = new NiceXWPFDocument(new FileInputStream("C:\\\\Users\\\\Administrator\\\\Desktop\\\\test.docx"));
//添加段落
XWPFParagraph p1 = main.createParagraph();
p1.setPageBreak(true);
// 合并成三个文档
NiceXWPFDocument newDoc1 = main.merge(sub);
// 又添加一个新的段落
XWPFParagraph p2 = newDoc1.createParagraph();
p2.setPageBreak(true);
NiceXWPFDocument newDoc2 = newDoc1.merge(sub);
// 生成新文档
FileOutputStream out = new FileOutputStream("C:\\\\Users\\\\Administrator\\\\Desktop\\\\new_test.docx");
newDoc2.write(out);
newDoc2.close();
out.close();
System.out.println("合并word成功!");
catch (Exception e)
e.printStackTrace();
public static void main(String[] args)
// gen();
concat();
三、效果图
-
1、模板的
tpl.docx
-
2、生成的
test.docx
-
3、合并后的
new_doc.docx
以上是关于java poi-tl 根据模板生成word合并多个word文档的主要内容,如果未能解决你的问题,请参考以下文章