Java Apache POI: 复制Word文档中特定书签内容
使用Java和Apache POI复制Word文档中特定书签内容
本教程提供使用Java和Apache POI库,将Word文档(.docx)中名为'应变计'的书签内容,从'input01.docx'复制到'input03.docx'中相同名称书签的位置,并将结果保存为'input04.docx'的代码示例。
**代码示例:**javaimport org.apache.poi.xwpf.usermodel.*;
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;
public class BookmarkCopyExample { public static void main(String[] args) { try { // 读取源文件 XWPFDocument sourceDoc = new XWPFDocument(new FileInputStream('input01.docx')); // 读取目标文件 XWPFDocument targetDoc = new XWPFDocument(new FileInputStream('input03.docx'));
// 获取源文件中的所有书签 for (XWPFParagraph paragraph : sourceDoc.getParagraphs()) { for (CTBookmark bookmark : paragraph.getCTP().getBookmarkStartList()) { String bookmarkName = bookmark.getName(); // 判断书签名称是否为应变计书签 if (bookmarkName.equals('应变计')) { // 获取书签的文本内容 String bookmarkText = paragraph.getText();
// 在目标文件中查找同名的书签 for (XWPFParagraph targetParagraph : targetDoc.getParagraphs()) { for (CTBookmark targetBookmark : targetParagraph.getCTP().getBookmarkStartList()) { String targetBookmarkName = targetBookmark.getName(); // 判断目标文件中的书签名称是否为应变计书签 if (targetBookmarkName.equals('应变计')) { // 替换目标文件中的书签内容 targetParagraph.getCTP().getBookmarkStartList().get(0).getDomNode().setTextContent(bookmarkText); break; } } } } } }
// 保存目标文件 FileOutputStream outputStream = new FileOutputStream('input04.docx'); targetDoc.write(outputStream); outputStream.close();
System.out.println('书签内容复制完成!'); } catch (IOException e) { e.printStackTrace(); } }}
注意:
- 确保已将Apache POI库添加到您的项目中。* 将代码中的文件名替换为您实际使用的文件名。
希望本教程对您有所帮助!
原文地址: https://www.cveoy.top/t/topic/fLYF 著作权归作者所有。请勿转载和采集!