首页 > 编程语言 >如何通过 C#合并 Word 文档

如何通过 C#合并 Word 文档

时间:2022-12-16 15:43:15浏览次数:57  
标签:docx document Word C# Spire 文档 Document

合并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-PackageFreeSpire.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 文档_.NET_02

——本文完——

标签:docx,document,Word,C#,Spire,文档,Document
From: https://blog.51cto.com/u_15656056/5947506

相关文章

  • 【LeeCode】2488. 统计中位数为 K 的子数组 -- 太难了
    【题目描述】给你一个长度为n的数组nums,该数组由从1到n的不同整数组成。另给你一个正整数k。统计并返回num中的中位数等于k的非空子数组的数目。注意:数组......
  • [Typescript] 139. Extreme - Slice
    ImplementtheJavaScript Array.slice functioninthetypesystem. Slice<Arr,Start,End> takesthethreeargument.Theoutputshouldbeasubarrayof Arr......
  • opencl实现图像旋转(二维数组)。
    改写自:https://zhuanlan.zhihu.com/p/451101452,该用零拷贝方案。1、host函数1#include<CL/cl.h>2#include<stdio.h>3#include<stdlib.h>4#include<......
  • 我读经典(4):读《打造Facebook》有感
    Facebook,是在用了国内的人人网很久之后。从上大学到研究生毕业,我几乎每天都要上人人网,发发日志、照片,看看其他同学有什么动向等等。个人感觉人人网使用起来非常的方便,拉近了......
  • 初识Docker
    一、Docker概述1、Docker的概念•Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源•Docker是在Linux容器里运行应用的开源工具,是一种轻量级......
  • ctags: Unknown option: --kinds-c
    在本地搭建Bootlinelixir查阅内核代码的时候,每当执行到 python3update.py 这一步骤的时候,终端上总会报“ctags:Unknownoption:--kinds-c”这个warning,执行完成以......
  • docker 安装redis并配置外网访问
    docker安装redis并配置外网访问dockerpullredis拉取最新版本的redis,后面也可以加tag指定版本号dockerpullredisdocker安装redis容器(container)安装之前定......
  • Oracle的网络三大配置文件sqlnet.ora、tnsnames.ora、listener.ora
    1.说明为了使得外部进程能够访问Oracle 数据库则必须配置Oracle 网络服务器环境配置, Oracle 网络服务器环境是通过配置listener.ora、sqlnet.ora 和 tnsnames.ora ......
  • 肯天chem-trend | 我们如何解决“黑斑问题”?
    又到小肯教授的讲课时间,我们都知道,螺杆清洗料对于现代热塑性塑料加工企业至关重要,使用针对操作过程和参数特别设计的螺杆清洗料,可以提供显著的竞争优势。更多肯天脱模剂及螺......
  • gocron客户端环境配置
    启动配置文件[root@gocron~]#cat/etc/systemd/system/gocron-node.service[Unit]Description=gocronAfter=network.target[Service]Type=simpleExecStart=/bin/bash-c......