Java 使用 Apache POI 替换 Word 文档书签内容
本文将介绍如何使用 Java 和 Apache POI 库来替换 Word 文档中的书签内容。
首先,需要导入 Apache POI 的依赖。可以在 Maven 项目中添加以下依赖项:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
然后,可以使用以下代码来实现替换并保存新文件:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFRun;
public class ReplaceBookmarkContent {
public static void main(String[] args) {
String input01 = "input01.docx";
String input03 = "input03.docx";
String output = "input04.docx";
try {
// 读取 input01.docx 文件
XWPFDocument doc01 = new XWPFDocument(new FileInputStream(input01));
// 读取 input03.docx 文件
XWPFDocument doc03 = new XWPFDocument(new FileInputStream(input03));
// 获取 input03.docx 中应变计书签的内容
String bookmarkContent = doc03.getBookmarkStart("bookmarkName").getText();
// 获取 input01.docx 中应变计书签的位置
int bookmarkStartPos = doc01.getPosOfBookmark("bookmarkName");
int bookmarkEndPos = doc01.getBookmarkEnd("bookmarkName").getCTBookmark().getDomNode().getSiblingIndex();
// 替换 input01.docx 中应变计书签的内容
for (XWPFRun run : doc01.getParagraphs().get(bookmarkStartPos).getRuns()) {
run.setText(bookmarkContent, 0);
}
// 保存新文件
FileOutputStream out = new FileOutputStream(output);
doc01.write(out);
out.close();
System.out.println("替换完成并保存为" + output);
} catch (Exception e) {
e.printStackTrace();
}
}
}
请确保将 input01.docx 和 input03.docx 文件放在当前工作目录下,并将 bookmarkName 替换为实际的书签名称。运行代码后,将生成一个名为 input04.docx 的新文件,其中应变计书签的内容已被替换为 input03.docx 中的内容。
原文地址: https://www.cveoy.top/t/topic/fLZH 著作权归作者所有。请勿转载和采集!