使用Java POI 复制 Word 模板
在日常工作中,我们经常需要处理Word文档,其中一项常见的需求是复制一个Word模板并填入不同的内容。在Java开发中,可以使用Apache POI库来实现这一功能。本文将介绍如何使用Java POI库来复制一个Word模板,并填入不同的内容。
准备工作
首先,我们需要引入POI库的依赖。在pom.xml
文件中添加以下依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.5</version>
</dependency>
接下来,我们需要准备一个Word模板文件,例如名为template.docx
的文件。这个模板文件中可以包含一些占位符,我们将在代码中替换这些占位符为真实内容。
复制Word模板
首先,我们需要加载模板文件并创建一个新的Word文档对象。然后,我们可以复制模板文件的内容到新的文档中。
// 引入必要的类
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
// 加载模板文件
FileInputStream fis = new FileInputStream("template.docx");
XWPFDocument templateDoc = new XWPFDocument(fis);
// 创建新的Word文档对象
XWPFDocument newDoc = new XWPFDocument();
// 复制模板文件的内容到新文档
for (XWPFParagraph para : templateDoc.getParagraphs()) {
XWPFParagraph newPara = newDoc.createParagraph();
for (XWPFRun run : para.getRuns()) {
XWPFRun newRun = newPara.createRun();
newRun.setText(run.getText(0));
}
}
填入内容
现在,我们已经成功复制了模板文件的内容到新文档中。接下来,我们可以在新文档中查找并替换占位符为真实内容。
// 在新文档中查找并替换占位符为真实内容
for (XWPFParagraph para : newDoc.getParagraphs()) {
for (XWPFRun run : para.getRuns()) {
String text = run.getText(0);
if (text != null && text.contains("{{placeholder}}")) {
run.setText(text.replace("{{placeholder}}", "Real Content"), 0);
}
}
}
保存文档
最后,我们可以保存新文档到指定的位置。
// 保存文档
FileOutputStream fos = new FileOutputStream("new_document.docx");
newDoc.write(fos);
fos.close();
通过以上代码示例,我们成功使用Java POI库复制了一个Word模板,并填入不同的内容。这在处理大量相似文档并进行批量替换时非常实用。希望本文对你有所帮助!