合并 Word 文档可以快速地将多份编辑好的文档合在一起,避免复制粘贴时遗漏内容,以及耗费不必要的时间,同时,也方便了人们阅读或者对其进行再次修改。例如,在我们进行团队作业的时候,每个人都会有不同的分工,此时,每个人都需要完成自己的文档,利用合并文件功能就可以快速地将所有内容集合在一起,方便了对内容的修改。本文将分为以下两部分介绍如何通过 C#合并 Word 文档,并附上 VB.NET 代码供大家参考。
程序环境
本次测试时,在程序中引入 Free Spire.Doc for .NET。可通过以下方法引用 Free Spire.Doc.dll 文件:
方法 1:将 Free Spire.Doc for .NET下载到本地,解压,安装。安装完成后,找到安装路径下 BIN 文件夹中的 Spire.Doc.dll。然后在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径 BIN 文件夹下的 dll 文件添加引用至程序。
方法 2:通过NuGet安装。可通过以下 2 种方法安装:
(1)可以在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理 NuGet 包”,然后搜索“Free Spire.Doc”,点击“安装”。等待程序安装完成。
(2)将以下内容复制到 PM 控制台安装。
Install-PackageFreeSpire.Doc -Version 10.8.0
通过插入完整文件来合并文档
创建一个 Document 实例。
使用 Document.LoadFromFile() 方法加载原始 Word 文档。
使用 Document.InsertTextFromFile() 方法将另一个 Word 文档完全插入到原始文档中。
使用 Document.SaveToFile() 方法保存结果文档。
完整代码
C#
using Spire.Doc;
namespace MergeWord
{
class Program
{
static void Main(string[] args)
{
//创建一个Document实例
Document document = new Document();
//加载原始 Word 文档
document.LoadFromFile("文档1.docx", FileFormat.Docx);
//插入另一个 Word 文档到原文档中
document.InsertTextFromFile("文档2.docx", FileFormat.Docx);
//保存结果文档
document.SaveToFile("合并Word文档.docx", FileFormat.Docx);
}
}
}
复制代码
VB.NET
Imports Spire.Doc
Namespace MergeWord
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'创建一个Document实例
Dim document As Document = New Document()
'加载原始 Word 文档
document.LoadFromFile("文档1.docx", FileFormat.Docx)
'插入另一个 Word 文档到原文档中
document.InsertTextFromFile("文档2.docx", FileFormat.Docx)
'保存结果文档
document.SaveToFile("合并Word文档.docx", FileFormat.Docx)
End Sub
End Class
End Namespace
复制代码
效果图
通过克隆内容合并文档
加载两个 Word 文档。
循环遍历第二个文档中的所有节,然后循环遍历每个节下的子对象,获取特定的子对象,准备插入第一个文档。
使用 Document.LastSection 属性获取第一个文档的最后一个节,然后使用 LastSection.Body.ChildObjects.Add() 方法将子对象添加到第一个文档的最后一个节。
使用 Document.SaveToFile() 方法保存结果文档。
完整代码
C#
using Spire.Doc;
namespace MergeWord
{
class Program
{
static void Main(string[] args)
{
//加载两个 Word 文档
Document doc1 = new Document("文档1.docx");
Document doc2 = new Document("文档2.docx");
//循环遍历第二个文档以获取所有节
foreach (Section section in doc2.Sections)
{
//遍历第二个文档的各个节以获取它们的子对象
foreach (DocumentObject obj in section.Body.ChildObjects)
{
//获取第一个文档的最后一节
Section lastSection = doc1.LastSection;
//将所有子对象添加到第一个文档的最后一节
lastSection.Body.ChildObjects.Add(obj.Clone());
}
}
//保存结果文档
doc1.SaveToFile("合并文档.docx", FileFormat.Docx);
}
}
}
复制代码
VB.NET
Imports Spire.Doc
Namespace MergeWord
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'加载两个 Word 文档
Dim doc1 As Document = New Document("文档1.docx")
Dim doc2 As Document = New Document("文档2.docx")
'循环遍历第二个文档以获取所有节
For Each section As Section In doc2.Sections
'遍历第二个文档的各个节以获取它们的子对象
For Each obj As DocumentObject In section.Body.ChildObjects
'获取第一个文档的最后一节
Dim lastSection As Section = doc1.LastSection
'将所有子对象添加到第一个文档的最后一节
lastSection.Body.ChildObjects.Add(obj.Clone())
Next
Next
'保存结果文档
doc1.SaveToFile("合并文档.docx", FileFormat.Docx)
End Sub
End Class
End Namespace
复制代码
效果图
——本文完——
评论