如何使用C#代码合并Word文档

长篇论文或研究报告通常需要多人协作完成。为了提高效率,每个人可以分别在独立的文档中编辑自己负责的部分,待编辑完成后,再将这些文档合并为一个完整的文件。

除了手动复制和粘贴不同 Word 文档中的内容外,还可以通过编程方式合并 Word 文档。本文将介绍以下两种方法:

  • 通过插入整个文件合并文档

  • 通过克隆文档内容合并文档

安装相关组件

开始之前,需要将相关组件包中的 DLL 文件作为引用添加到 .NET 项目中。你可以从官方提供的下载页面获取这些文件,也可以通过 NuGet 包管理器进行安装。

cs 复制代码
PM> Install-Package Spire.Doc

通过插入整个文件合并文档

可以使用 InsertTextFromFile() 方法,将另一个 Word 文档的全部内容插入当前文档,从而实现文档合并。通过这种方式,插入的文档内容将从新的一页开始。

具体步骤如下:

  1. 创建一个 Document 实例。

  2. 使用 Document.LoadFromFile() 方法加载原始 Word 文档。

  3. 使用 Document.InsertTextFromFile() 方法,将另一个 Word 文档的全部内容插入原始文档。

  4. 使用 Document.SaveToFile() 方法保存合并后的文档。

完整示例代码如下:

cs 复制代码
using Spire.Doc;

namespace MergeWord
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Document 实例
            Document document = new Document();

            // 加载原始 Word 文档
            document.LoadFromFile("Doc1.docx", FileFormat.Docx);

            // 将另一个 Word 文档的全部内容插入原始文档
            document.InsertTextFromFile("Doc2.docx", FileFormat.Docx);

            // 保存合并后的文档
            document.SaveToFile("MergedWord.docx", FileFormat.Docx);
        }
    }
}

通过克隆内容合并文档

如果希望合并文档时不另起新页,可以将其他文档中的内容克隆并追加到原始文档的末尾。具体步骤如下:

  1. 加载两个 Word 文档。

  2. 使用 Document.Sections 属性遍历第二个文档中的所有节,再通过 Section.Body.ChildObjects 属性遍历各节中的子对象。

  3. 使用 Document.LastSection 属性获取第一个文档的最后一个节,然后调用 LastSection.Body.ChildObjects.Add() 方法,将第二个文档中的子对象添加到该节的末尾。

  4. 使用 Document.SaveToFile() 方法保存合并后的文档。

完整示例代码如下:

cs 复制代码
using Spire.Doc;

namespace MergeWord
{
    class Program
    {
        static void Main(string[] args)
        {
            // 加载两个 Word 文档
            Document doc1 = new Document("Doc1.docx");
            Document doc2 = new Document("Doc2.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("MergeDocuments.docx", FileFormat.Docx);
        }
    }
}

总结

本文介绍了如何通过克隆文档内容,将多个 Word 文档合并为一个文档。通过遍历第二个文档中的各个节及其子对象,并将这些对象的克隆副本添加到第一个文档的最后一个节中,即可将两个文档的内容整合到一起。

与直接插入整个文档的方式相比,这种方法可以将新内容追加到现有文档末尾,而不必强制从新的一页开始,适用于需要连续合并报告、论文或其他文档内容的场景。完成合并后,将结果保存为新的 Word 文档即可。

在实际使用时,需要注意文档中的节、段落及其他内容对象的组织方式,并根据文档的格式要求选择合适的合并方法,以便更好地保持合并后文档的结构和排版。

相关推荐
yivifu6 小时前
使用lxml操作 Word 的 OpenXML 底层
word·openxml·lxml
梦想出海-Phoebe1 天前
Gemini新增文件编辑功能:PDF、Word、Excel处理体验分享
pdf·word·excel
开开心心_Every3 天前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
ComPDFKit4 天前
PDF转Word后,每行都成一段?先分清断段、文本框和扫描页
pdf·word
thethefighter4 天前
快速预览Word、WPS秒开,支持空格弹窗
linux·word·wps·快速预览·空格弹窗·nhdeepview
SunnyDays10114 天前
Java 操作 Word 脚注和尾注:添加、读取与删除
java·word
SunnyDays10114 天前
Java 为 Word 添加页码:隐藏封面页码、从指定页开始编号、奇偶页页码设置等
java·word·页码
Eiceblue4 天前
用 Python 给 Word 文档加水印:文字、图片与批量处理
开发语言·vscode·python·word
Metaphor6925 天前
使用 Python 在 Word 文档中添加、修改和删除变量
python·word
Monte05395 天前
word 如何让mathtype公式居中,公式编号右对齐
word