如何通过C#合并Word文档?
合并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文档?的更多相关文章
- Java 合并Word文档
合并文档可以是将两个包含一定逻辑关系的文档合并成一个完整的文档,也可以是出于方便文档存储.管理的目的合并多个文档为一个文档.下面,就将以上文档操作需求,通过Java程序来实现Word文档合并.合并文档 ...
- java poi 合并 word文档
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import jav ...
- [java,2017-05-04] 合并word文档
import java.io.File; import com.aspose.words.Document; import com.aspose.words.ImportFormatMode; pub ...
- C# 合并及拆分Word文档
本文简要分析一下如何如何使用C#简单实现合并和拆分word文档.平时我们在处理多个word文档时,可能会想要将两个文档合并为一个,或者是将某个文档的一部分添加到另一个文档中,有的时候也会想要将文档拆分 ...
- POI生成word文档完整案例及讲解
一,网上的API讲解 其实POI的生成Word文档的规则就是先把获取到的数据转成xml格式的数据,然后通过xpath解析表单式的应用取值,判断等等,然后在把取到的值放到word文档中,最后在输出来. ...
- Word文档合并的一种实现
今天遇到一个问题,就是需要把多个Word文档的内容追加到一个目标Word文档的后面,如果我有目标文档a.doc以及其他很多个文档b.doc,c.doc…等等数量很多.这个问题,如果是在服务端的话,直接 ...
- Word文档合并
Word文档合并的一种实现 今天遇到一个问题,就是需要把多个Word文档的内容追加到一个目标Word文档的后面,如果我有目标文档a.doc以及其他很多个文档b.doc,c.doc…等等数量很多.这 ...
- C# 实现将多个word文档合并成一个word文档的功能
前段时间项目上遇到这么一个需求,需要将多个OCR识别的word文档合并成一个,于是就在网上找了找,自己修改了一下.在这里跟大家分享一下,希望有用的到的. 要做多word文档合并,首先要导入Micros ...
- word文档批量合并工具
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. ; #Warn ; En ...
- 多个 Word 文档合并为一个
如果您工作中经常要跟 Word 文档打交道,时不时的您可能需要将多个 Word 文档合并为一个.信息量少的时候,我们可以直接使用复制粘贴.除此之外,还有没有其它办法呢? 借助word2010/2007 ...
随机推荐
- Elasticsearch与MySQL对应关系表
MySQL 中的数据库(DataBase),等价于 ES 中的索引(Index). MySQL 中一个数据库下面有 N 张表(Table),等价于1个索引 Index 下面有 N 多类型(Type). ...
- CentOS 7.x 升级OpenSSH
升级SSH 存在中断风险,如果SSH 升级失败将会导致终端无法登录,建议在使用本地虚拟机进行测试后对线上生产环境进行升级操作!!! 三级等保评测中对主机进行漏洞扫描发现linux主机存在高危漏洞,查看 ...
- Python中dataclass库
目录 dataclass语法 一. 简介 二. 装饰器参数 三. 数据属性 1. 参数 2. 使用示例 3. 注意事项 四. 其他 1. 常用函数 2. 继承 3. 总结 dataclass语法 一. ...
- nsis制作新版迅雷安装界面
终于搞出来一点名堂,不借用皮肤插件,圆角,无标题栏拖动,渐隐渐显,纯nsis代码编写,相似度大概也有95%以上了. 演示程序下载
- The XOR Largest Pair (trie树)
题目描述 在给定的 NN 个整数 A_1,A_2,--,A_NA1,A2,--,AN 中选出两个进行xor运算,得到的结果最大是多少?xor表示二进制的异或(^)运算符号. 输入格式 第一行输入 ...
- Go_Channel详解
一 channel介绍 单纯地将函数并发执行是没有意义的.函数与函数间需要交换数据才能体现并发执行函数的意义. 虽然可以使用共享内存进行数据交换,但是共享内存在不同的goroutine中容易发生竞态问 ...
- 陆地观测卫星数据服务(CRESDA)订单ftp地址错误—已解决不能下载问题
陆地观测卫星数据服务订单ftp地址错误 问题:本人在陆地观测卫星数据网站上申请GF1-WFV10幅数据,订单完成后返回的FTP地址出现无法连接服务器现象.(数据订单申请已通过) 一.情况介绍: 我 ...
- python-D3-语法入门1
Python语法注释 什么是注释 注释其实就是对一段代码的解释说明(注释是代码之母) 如何编写注释 方式1:解释说明文字前加警号 (pycharm中有快捷键ctrl+?) # 注释(单行注释) 方式2 ...
- java中的栈(利用数组实现栈)
java中的栈(利用数组实现栈) 常见的数据结构:https://blog.csdn.net/weixin_43304253/article/details/119764275 栈的介绍 1.栈的英文 ...
- Springboot+vue 实现汽车租赁系统(毕业设计二)(前后端项目分离)
文章目录 1.系统功能列表 2.管理员端界面 2.1 商家登录界面 2.2 用户信息管理界面 2.3 汽车管理界面 2.4 订单界面 2.5 汽车图形报表 2.6 优惠券新增界面 3.普通用户界面 3 ...