写点什么

如何通过 C#合并 Word 文档

作者:在下毛毛雨
  • 2022-12-07
    四川
  • 本文字数:2289 字

    阅读完需:约 8 分钟

如何通过C#合并Word文档

合并 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 ClassEnd 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 ClassEnd Namespace
复制代码

效果图

——本文完——

发布于: 2022-12-07阅读数: 20
用户头像

还未添加个人签名 2022-06-02 加入

还未添加个人简介

评论

发布
暂无评论
如何通过C#合并Word文档_C#_在下毛毛雨_InfoQ写作社区