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

开发技术 作者:iii 2024-04-17 16:30:01
本文小编为大家详细介绍“怎么用C#实现合并Word文档功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用C#实现合并Word文档功能”文章能帮助大家解决疑...

本文小编为大家详细介绍“怎么用C#实现合并Word文档功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用C#实现合并Word文档功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

程序环境

本次测试时,在程序中引入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

效果图

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

通过克隆内容合并文档

通过克隆内容合并文档的具体步骤如下:

  • 加载两个 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文档功能”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注捷杰建站行业资讯频道。

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_13018.html
word