将input01docx文件里的所有内容复制到input03docx文件里的应变计书签位置并将input02docx文件里的所有内容复制到input03docx文件里的位移计书签位置将新的的文件以input04docx进行保存Apache POI库为522版本
以下是使用Apache POI库进行操作的示例代码:
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class WordDocumentCopy {
public static void main(String[] args) {
try {
// 打开输入文件1
XWPFDocument inputDoc1 = new XWPFDocument(new FileInputStream("input01.docx"));
// 打开输入文件2
XWPFDocument inputDoc2 = new XWPFDocument(new FileInputStream("input02.docx"));
// 打开输出文件
XWPFDocument outputDoc = new XWPFDocument();
// 复制内容到输出文件
copyContent(inputDoc1, outputDoc, "应变计");
copyContent(inputDoc2, outputDoc, "位移计");
// 保存输出文件
FileOutputStream out = new FileOutputStream("input04.docx");
outputDoc.write(out);
out.close();
System.out.println("文件复制完成。");
} catch (IOException e) {
e.printStackTrace();
}
}
private static void copyContent(XWPFDocument inputDoc, XWPFDocument outputDoc, String bookmarkName) {
// 查找书签
XWPFParagraph bookmarkParagraph = findBookmarkParagraph(inputDoc, bookmarkName);
if (bookmarkParagraph != null) {
// 复制段落
XWPFParagraph newParagraph = outputDoc.createParagraph();
newParagraph.getCTP().setPPr(bookmarkParagraph.getCTP().getPPr());
newParagraph.getCTP().setRArray(bookmarkParagraph.getCTP().getRArray());
newParagraph.getCTP().setBookmarkStartArray(bookmarkParagraph.getCTP().getBookmarkStartArray());
newParagraph.getCTP().setBookmarkEndArray(bookmarkParagraph.getCTP().getBookmarkEndArray());
newParagraph.getCTP().setSdtArray(bookmarkParagraph.getCTP().getSdtArray());
newParagraph.getCTP().setFldSimpleArray(bookmarkParagraph.getCTP().getFldSimpleArray());
newParagraph.getCTP().setHyperlinkArray(bookmarkParagraph.getCTP().getHyperlinkArray());
// 复制段落中的文本
for (XWPFRun bookmarkRun : bookmarkParagraph.getRuns()) {
XWPFRun newRun = newParagraph.createRun();
newRun.getCTR().setRPr(bookmarkRun.getCTR().getRPr());
newRun.setText(bookmarkRun.getText(0));
}
}
}
private static XWPFParagraph findBookmarkParagraph(XWPFDocument document, String bookmarkName) {
for (XWPFParagraph paragraph : document.getParagraphs()) {
for (CTBookmark bookmark : paragraph.getCTP().getBookmarkStartList()) {
if (bookmark.getName().equals(bookmarkName)) {
return paragraph;
}
}
}
return null;
}
}
请确保将Apache POI库的jar文件添加到项目的依赖中。在此示例中,我们使用的是Apache POI库的5.2.2版本。
原文地址: https://www.cveoy.top/t/topic/h7tN 著作权归作者所有。请勿转载和采集!