合并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文档?的更多相关文章

  1. Java 合并Word文档

    合并文档可以是将两个包含一定逻辑关系的文档合并成一个完整的文档,也可以是出于方便文档存储.管理的目的合并多个文档为一个文档.下面,就将以上文档操作需求,通过Java程序来实现Word文档合并.合并文档 ...

  2. java poi 合并 word文档

    import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import jav ...

  3. [java,2017-05-04] 合并word文档

    import java.io.File; import com.aspose.words.Document; import com.aspose.words.ImportFormatMode; pub ...

  4. C# 合并及拆分Word文档

    本文简要分析一下如何如何使用C#简单实现合并和拆分word文档.平时我们在处理多个word文档时,可能会想要将两个文档合并为一个,或者是将某个文档的一部分添加到另一个文档中,有的时候也会想要将文档拆分 ...

  5. POI生成word文档完整案例及讲解

    一,网上的API讲解 其实POI的生成Word文档的规则就是先把获取到的数据转成xml格式的数据,然后通过xpath解析表单式的应用取值,判断等等,然后在把取到的值放到word文档中,最后在输出来. ...

  6. Word文档合并的一种实现

    今天遇到一个问题,就是需要把多个Word文档的内容追加到一个目标Word文档的后面,如果我有目标文档a.doc以及其他很多个文档b.doc,c.doc…等等数量很多.这个问题,如果是在服务端的话,直接 ...

  7. Word文档合并

    Word文档合并的一种实现   今天遇到一个问题,就是需要把多个Word文档的内容追加到一个目标Word文档的后面,如果我有目标文档a.doc以及其他很多个文档b.doc,c.doc…等等数量很多.这 ...

  8. C# 实现将多个word文档合并成一个word文档的功能

    前段时间项目上遇到这么一个需求,需要将多个OCR识别的word文档合并成一个,于是就在网上找了找,自己修改了一下.在这里跟大家分享一下,希望有用的到的. 要做多word文档合并,首先要导入Micros ...

  9. word文档批量合并工具

    #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. ; #Warn ; En ...

  10. 多个 Word 文档合并为一个

    如果您工作中经常要跟 Word 文档打交道,时不时的您可能需要将多个 Word 文档合并为一个.信息量少的时候,我们可以直接使用复制粘贴.除此之外,还有没有其它办法呢? 借助word2010/2007 ...

随机推荐

  1. 使用 Elastic Stack 分析地理空间数据 (一)

    文章转载自:https://blog.csdn.net/UbuntuTouch/article/details/106531939 随着人类在不断地探索空间,地理空间数据越来越多. 收集信息的速度以及 ...

  2. 「Tubian」Tubian0.41!支持Windows QQ微信!

    Tubian 0.42已发布:https://www.cnblogs.com/tubentubentu/p/16745926.html Sourceforge.net下载:https://source ...

  3. 我操作MySQL的惊险一幕

    背景 前几天因工作需要,组长给我安排了一个数据清洗的任务. 任务:把 A 表的数据洗到 B 表. 我的第一反应,什么是「洗」?洗数据是什么?洗钱我倒是知道. 不过我不能慌啊,于是问了问组长. 我:组长 ...

  4. 洛谷P1725 琪露诺 (单调队列/堆优化DP)

    显然的DP题..... 对于位置i,它由i-r~i-l的位置转移过来,容易得到方程 dp[i]=dp[i]+max(dp[i−r],...,dp[i−l]). 第一种:n2的暴力,只能拿部分分. 1 ...

  5. 洛谷P1950 长方形(单调栈)

    一道单调栈的好题啊...... 思路是很奇妙的,对于每个点(i,j),我们可以算它对答案的贡献(即包含它的矩形数量),包含该点的矩形,点的高度为h[j],点右边的高度一定大于等于h[j],左边的高度一 ...

  6. 面向对象的照妖镜——UML类图绘制指南

    1.前言 感受 在刚接触软件开发工作的时候,每次接到新需求,在分析需求后的第一件事情,就是火急火燎的打开数据库(DBMS),开始进行数据表的创建工作.然而这种方式,总是会让我在编码过程中出现实体类设计 ...

  7. 手把手教你玩转 Gitea|使用 Helm 在 K3s 上安装 Gitea

    前言 在前面的文章中,演示了如何用 Docker 镜像和 Windows 二进制包来安装运行 Gitea.今天是玩转 Gitea 系列的使用 Helm 在 K3s 上安装 Gitea. 关于 Gite ...

  8. ABC260 作战总结

    ABC260 作战总结 今后开始写一些模拟赛外的其他比赛的总结(也许有题解?). 开场点到另一场\(\text{ARC}\)去了,耽误了点时间,切完前四题发现已经过了\(37\)分钟了,看来自己读题+ ...

  9. OpenJudge 1.6.7 有趣的跳跃

    07:有趣的跳跃 总时间限制: 1000ms 内存限制: 65536kB 描述 一个长度为n(n>0)的序列中存在"有趣的跳跃"当前仅当相邻元素的差的绝对值经过排序后正好是从 ...

  10. C语言实现扫雷游戏(完整版)

    头文件定义.函数声明 下面就是扫雷中使用到的所有函数,为了省事我把所有的代码都放在一个C文件中实现 宏定义中设置了游戏的界面布局,以及设置地雷的个数(这里默认的是10个地雷),界面是一个9*9的方格布 ...