首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用C#代码复制 Word 文档内容到另一个文档

使用C#代码复制 Word 文档内容到另一个文档

原创
作者头像
用户12401097
修改2026-08-31 17:03:20
修改2026-08-31 17:03:20
80
举报

在日常办公和文档处理中,将一个 Word 文档中的内容复制到另一个 Word 文档是比较常见的需求。无论是整合多个文档中的信息,还是重新调整文档结构,都需要准确复制文本、图片以及原有格式,以确保内容迁移后仍能保持良好的排版效果。

准备开发环境

在开始实现之前,需要在 .NET 项目中添加相应的 Word 文档处理组件。你可以下载相关组件的 DLL 文件并将其添加到项目引用中,也可以通过 NuGet 包管理器进行安装。

代码语言:C#
复制
PM> Install-Package Spire.Doc

在 C# 中将指定段落从一个 Word 文档复制到另一个文档

在 C# 中,可以通过克隆段落对象并将其添加到另一个 Word 文档中,实现指定内容的选择性复制。使用 Spire.Doc for .NET 时,可以通过 Paragraph.Clone() 方法克隆单个段落,再使用 ParagraphCollection.Add() 方法将克隆后的段落添加到目标文档中,从而完成文档内容的迁移。

将指定段落从一个 Word 文档复制到另一个文档,可以按照以下步骤进行:

  • 创建一个 Document 对象并加载源文档。
  • 创建另一个 Document 对象并加载目标文档。
  • 获取源文档中需要复制的指定段落。
  • 使用 Paragraph.Clone() 方法克隆这些段落。
  • 使用 ParagraphCollection.Add() 方法将克隆后的段落添加到目标文档。
  • 将目标文档另存为新的 Word 文件。

完整示例代码如下:

代码语言:C#
复制
using Spire.Doc;
using Spire.Doc.Documents;

namespace CopyParagraphs
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个 Document 对象
            Document sourceDoc = new Document();

            // 加载源文档
            sourceDoc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\source.docx");

            // 获取源文档中指定的段落
            Paragraph p1 = sourceDoc.Sections[0].Paragraphs[8];
            Paragraph p2 = sourceDoc.Sections[0].Paragraphs[9];

            // 创建另一个 Document 对象
            Document targetDoc = new Document();

            // 加载目标文档
            targetDoc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\target.docx");

            // 获取最后一个节
            Section lastSection = targetDoc.LastSection;

            // 将源文档中的段落添加到目标文档
            lastSection.Paragraphs.Add((Paragraph)p1.Clone());
            lastSection.Paragraphs.Add((Paragraph)p2.Clone());

            // 将目标文档另存为其他 Word 文件
            targetDoc.SaveToFile("CopyParagraphs.docx", FileFormat.Docx2019);

            // 释放资源
            sourceDoc.Dispose();
            targetDoc.Dispose();
        }
    }
}

在 C# 中将一个 Word 文档的节复制到另一个文档

Word 文档中的一个“节”(Section)不仅可以包含段落,还可能包含表格等其他内容。因此,如果需要将整个节复制到另一个 Word 文档中,就不能只复制其中的文本,而需要遍历该节包含的所有子对象,并将它们逐一复制到目标文档的指定节中。

在 C# 中,可以按照以下步骤实现不同 Word 文档之间的节复制:

  • 创建 Document 对象,分别加载源文档和目标文档。
  • 获取源文档中需要复制的指定节。
  • 遍历该节中的子对象,并使用 DocumentObject.Clone() 方法复制这些对象。
  • 使用 DocumentObjectCollection.Add() 方法,将复制后的对象添加到目标文档的指定节中。
  • 将更新后的目标文档保存为新的文件。

完整示例代码如下:

代码语言:C#
复制
using Spire.Doc;

namespace CopySection
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个 Document 对象
            Document sourceDoc = new Document();

            // 加载源文档
            sourceDoc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\source.docx");

            // 获取源文档中指定的节
            Section section = sourceDoc.Sections[0];

            // 创建另一个 Document 对象
            Document targetDoc = new Document();

            // 加载目标文档
            targetDoc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\target.docx");

            // 获取目标文档的最后一个节
            Section lastSection = targetDoc.LastSection;

            // 遍历所选节中的子对象
            foreach (DocumentObject obj in section.Body.ChildObjects)
            {
                // 将子对象添加到目标文档的最后一个节中
                lastSection.Body.ChildObjects.Add(obj.Clone());
            }

            // 将目标文档另存为其他 Word 文件
            targetDoc.SaveToFile("CopySection.docx", FileFormat.Docx2019);

            // 释放资源
            sourceDoc.Dispose();
            targetDoc.Dispose();
        }
    }
}

在 C# 中复制整个 Word 文档并追加到另一个文档

如果需要将一个 Word 文档的全部内容添加到另一个 Word 文档中,可以直接将源文档的内容追加到目标文档末尾,并从新页面开始插入。使用 Spire.Doc for .NET 时,可以通过 Document.InsertTextFromFile() 方法快速完成这一操作。

复制整个文档并将其追加到另一个文档,可以按照以下步骤进行:

  • 创建一个 Document 对象。
  • 根据指定的文件路径加载 Word 文档作为目标文档。
  • 使用 Document.InsertTextFromFile() 方法,将另一个 Word 文档中的内容插入到目标文档中。
  • 将更新后的目标文档保存为新的 Word 文件。

完整示例代码如下:

代码语言:C#
复制
using Spire.Doc;

namespace CopyEntireDocument
{
    class Program
    {
        static void Main(string[] args)
        {
            // 指定源文档的路径
            String sourceFile = "C:\\Users\\Administrator\\Desktop\\source.docx";

            // 创建一个 Document 对象
            Document targetDoc = new Document();

            // 加载目标文档
            targetDoc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\target.docx");

            // 将源文档中的内容插入到目标文档中
            targetDoc.InsertTextFromFile(sourceFile, FileFormat.Docx);

            // 将目标文档另存为其他 Word 文件
            targetDoc.SaveToFile("CopyEntireDocuemnt.docx", FileFormat.Docx2019);

            // 释放资源
            targetDoc.Dispose();
        }
    }
}

在 C# 中创建 Word 文档副本

在 C# 中,可以通过克隆文档对象的方式快速创建 Word 文档的副本。使用 Spire.Doc for .NET 时,可以利用 Document.Clone() 方法复制现有文档。

创建 Word 文档副本的步骤如下:

  • 创建一个 Document 对象。
  • 根据指定的文件路径加载 Word 文档。
  • 使用 Document.Clone() 方法克隆文档。
  • 将克隆后的文档保存为新的 Word 文件。

完整示例代码如下:

代码语言:C#
复制
using Spire.Doc;

namespace CloneWordDocument
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个新的文档对象
            Document sourceDoc = new Document();

            // 加载 Word 文档
            sourceDoc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.docx");

            // 克隆文档
            Document newDoc = sourceDoc.Clone();

            // 将克隆后的文档保存为 docx 文件
            newDoc.SaveToFile("Copy.docx", FileFormat.Docx);

            // 释放资源
            sourceDoc.Dispose();
            newDoc.Dispose();
        }
    }
}

总结

在 C# 中复制 Word 文档内容,可以根据实际需求选择不同的处理方式。如果只需要复制指定段落,可以克隆目标段落并将其添加到另一个文档中;如果需要复制整个节,则可以遍历节中的内容并逐一复制;对于需要完整复制文档的场景,则可以直接克隆整个文档对象,生成一个独立的 Word 文档副本。

通过这些方法,可以更加灵活地完成 Word 文档内容的复制、合并和重新组织,满足不同的文档处理需求。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 准备开发环境
  • 在 C# 中将指定段落从一个 Word 文档复制到另一个文档
  • 在 C# 中将一个 Word 文档的节复制到另一个文档
  • 在 C# 中复制整个 Word 文档并追加到另一个文档
  • 在 C# 中创建 Word 文档副本
  • 总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档