利用C#实现合并Word文档功能

 更新时间:2022年12月08日 16:09:14   作者:Carina-baby  
合并Word文档可以快速地将多份编辑好的文档合在一起,避免复制粘贴时遗漏内容,以及耗费不必要的时间。本文将分为以下两部分介绍如何通过C#合并Word文档,并附上VB.NET代码供大家参考,希望对大家有所帮助

合并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-Package FreeSpire.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

效果图

到此这篇关于利用C#实现合并Word文档功能的文章就介绍到这了,更多相关C#合并Word文档内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#编程报错System.InvalidOperationException问题及解决

    C#编程报错System.InvalidOperationException问题及解决

    这篇文章主要介绍了C#编程报错System.InvalidOperationException问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 基于数据类型转换(装箱与拆箱)与常量详解

    基于数据类型转换(装箱与拆箱)与常量详解

    下面小编就为大家分享一篇基于数据类型转换(装箱与拆箱)与常量详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • C# Entity Framework中的IQueryable和IQueryProvider详解

    C# Entity Framework中的IQueryable和IQueryProvider详解

    这篇文章主要介绍了C# Entity Framework中的IQueryable和IQueryProvider详解,本文使用实例分析这两个接口的内部实现,需要的朋友可以参考下
    2015-01-01
  • C#各种异常处理方式总结

    C#各种异常处理方式总结

    这篇文章介绍了C#各种异常的处理方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • 解析C#中的分部类和分部方法

    解析C#中的分部类和分部方法

    这篇文章主要介绍了C#中的分部类和分部方法,讲解了类的拆分和方法的定义的拆分,需要的朋友可以参考下
    2016-01-01
  • Unity UGUI的ToggleGroup选项组件介绍使用

    Unity UGUI的ToggleGroup选项组件介绍使用

    这篇文章主要为大家介绍了Unity UGUI的ToggleGroup选项组件介绍使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 详解.NET 4.0中的泛型协变(covariant)和反变(contravariant)

    详解.NET 4.0中的泛型协变(covariant)和反变(contravariant)

    这篇文章主要介绍了详解.NET 4.0中的泛型协变(covariant)和反变(contravariant),本文讲解了协变和反变的背景知识、.NET 4.0引入的泛型协变、反变性、协变和反变的相互作用等内容,需要的朋友可以参考下
    2015-06-06
  • C#小数点格式化用法小结

    C#小数点格式化用法小结

    这篇文章主要介绍了C#小数点格式化用法,结合实例形式分析了C#小数点格式化运算的常用函数与相关使用技巧,需要的朋友可以参考下
    2016-08-08
  • c# 从IE浏览器获取当前页面的内容

    c# 从IE浏览器获取当前页面的内容

    从IE浏览器获取当前页面内容可能有多种方式,今天我所介绍的是其中一种方法。基本原理:当鼠标点击当前IE页面时,获取鼠标的坐标位置,根据鼠标位置获取当前页面的句柄,然后根据句柄,调用win32的东西进而获取页面内容。感兴趣的朋友可以参考下本文
    2021-06-06
  • unity 文件流读取图片与www读取图片的区别介绍

    unity 文件流读取图片与www读取图片的区别介绍

    这篇文章主要介绍了unity 文件流读取图片与www读取图片的对比分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04

最新评论