package word;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFRun;

public class Word {
    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.getParagraphs().get(0).getText();

            // 获取input01.docx中应变计书签的位置
            int bookmarkStartPos = doc01.getPosOfParagraph(doc01.getParagraphs().get(0));
            int bookmarkEndPos = bookmarkStartPos + doc01.getParagraphs().size() - 1;

            // 替换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();
        }
    }
}

这段代码展示了如何使用Apache POI库来替换Word文档中的书签内容。

  1. 首先,使用XWPFDocument类分别加载两个Word文档:input01.docxinput03.docx
  2. 然后,使用getParagraphs().get(0).getText()方法获取input03.docx中第一个段落的文本内容,将其作为要替换的书签内容。
  3. 接着,使用getPosOfParagraph()方法获取input01.docx中第一个段落的位置,并计算出书签的结束位置。
  4. 最后,使用setText()方法将input01.docx中对应书签的内容替换为input03.docx中获取的文本内容,并将修改后的文档保存到input04.docx文件中。

这段代码简单易懂,可以帮助开发者快速实现Word文档书签内容的替换功能。

Java使用Apache POI替换Word书签内容

原文地址: https://www.cveoy.top/t/topic/fLZR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录