以下是使用Apache POI库将input01.docx文件内容复制到input03.docx文件的“应变计”书签位置的完整代码示例:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

public class CopyContentToBookmark {
    public static void main(String[] args) {
        try {
            // 打开input01.docx文件
            FileInputStream fis = new FileInputStream("input01.docx");
            XWPFDocument doc1 = new XWPFDocument(OPCPackage.open(fis));

            // 打开input03.docx文件
            FileInputStream fis2 = new FileInputStream("input03.docx");
            XWPFDocument doc2 = new XWPFDocument(OPCPackage.open(fis2));

            // 获取“应变计”书签位置的段落
            XWPFParagraph bookmarkParagraph = doc2.getParagraphs().stream()
                    .filter(p -> p.getCTP().getBookmarkStartList().stream()
                            .anyMatch(b -> b.getName().equals("应变计")))
                    .findFirst().orElse(null);

            if (bookmarkParagraph != null) {
                // 清空“应变计”书签位置的段落内容
                for (int i = bookmarkParagraph.getRuns().size() - 1; i >= 0; i--) {
                    bookmarkParagraph.removeRun(i);
                }

                // 复制input01.docx文件的内容到“应变计”书签位置的段落
                for (XWPFParagraph paragraph : doc1.getParagraphs()) {
                    XWPFParagraph newParagraph = doc2.createParagraph();
                    newParagraph.getCTP().setPPr(paragraph.getCTP().getPPr());
                    for (XWPFRun run : paragraph.getRuns()) {
                        XWPFRun newRun = newParagraph.createRun();
                        newRun.getCTR().setRPr(run.getCTR().getRPr());
                        newRun.setText(run.getText(0));
                    }
                }
            }

            // 保存修改后的input03.docx文件
            FileOutputStream fos = new FileOutputStream("input03.docx");
            doc2.write(fos);

            // 关闭所有打开的文件流
            fis.close();
            fis2.close();
            fos.close();

            System.out.println("内容复制完成!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

请注意,此代码假设input01.docx和input03.docx文件位于当前工作目录中。您需要根据实际情况修改文件路径。

将input01docx文件里的所有内容复制到input03docx文件里的应变计书签位置Apache POI库为522版本完整代码

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

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