进行文档操作时,有时需要将多个相关的 Word 合并成一个更完整的 Word 文档。如果要使用 MS Word 来合并文档,只能通过复制粘贴或是从对象导入内容的方法进行合并,可能会非常耗时且麻烦。Spire.Doc for Java 给大家提供了两种简单的方法,通过编写程序来合并 Word 文档。本文将介绍合并文档的详细操作步骤。
安装 Spire.Doc for Java
首先,您需要在 Java 程序中添加 Spire.Doc.jar 文件作为依赖项。您可以从这个链接下载 JAR 文件;如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>12.9.0</version>
</dependency>
</dependencies>
通过插入完整文件合并文档
Spire.Doc for Java 提供了可以插入文档的方法:Document.insertTextFromFile(),可以通过这个方法在一个 Word 文档中插入其他文档来实现文档的合并,而插入的文档的内容会从新的页面开始。
通过插入完整文档实现文档合并的详细操作步骤如下:
- 创建 Document 类的对象,并从磁盘加载 Word 文档。
- 使用 Document.insertTextFromFile() 方法插入另一个的 Word 文档。
- 用 Document.saveToFile() 方法保存结果文档。
- Java
import com.spire.doc.*;
public class merge {
public static void main(String[] args) {
//创建 Document 类的对象并从磁盘加载 Word 文档
Document document = new Document("C:/示例/示例1.docx");
//将另一个文档插入当前文档
document.insertTextFromFile("C:/示例/示例2.docx", FileFormat.Docx_2013);
//保存结果文档
document.saveToFile("合并结果.docx", FileFormat.Docx_2013);
}
}
通过克隆内容合并文档
如果合并文档时不想让内容从新的页面开始,可以使用另外一种方法,直接克隆其他文档内容到一个文档中完成合并。
通过克隆内容合并文档的详细操作步骤如下:
- 创建两个 Document 类的对象并分别从磁盘载入 Word 文档。
- 循环遍历第二个文档所有节,然后循环遍历节的子对象。
- 用 Document.getLastSection() 方法获取第一个文档的最后一节,再用 Body.getChildObjects().add() 方法将所有子对象添加到获取的最后一节中。
- 用 Document.saveToFile() 方法保存结果文档。
- Java
import com.spire.doc.*;
public class mergeDocuments {
public static void main(String[] args){
//创建两个 Document 类的对象顶分别载入 Word 文档
Document document1 = new Document("C:/Users/Allen/Desktop/示例1.docx");
Document document2 = new Document("C:/Users/Allen/Desktop/示例2.docx");
//在第二个文档中循环获取所有节
for (Object sectionObj : (Iterable) document2.getSections()) {
Section sec=(Section)sectionObj;
//在所有节中循环获取所有子对象
for (Object docObj :(Iterable ) sec.getBody().getChildObjects()) {
DocumentObject obj=(DocumentObject)docObj;
//获取第一个文档的最后一节
Section lastSection = document1.getLastSection();
//将所有子对象添加到第一个文档的最后一节中
Body body = lastSection.getBody();
body.getChildObjects().add(obj.deepClone());
}
}
//保存结果文档
document1.saveToFile("MergingResult.docx", FileFormat.Docx_2013);
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。