利用C#實(shí)現(xiàn)合并Word文檔功能
合并Word文檔可以快速地將多份編輯好的文檔合在一起,避免復(fù)制粘貼時(shí)遺漏內(nèi)容,以及耗費(fèi)不必要的時(shí)間,同時(shí),也方便了人們閱讀或者對其進(jìn)行再次修改。例如,在我們進(jìn)行團(tuán)隊(duì)作業(yè)的時(shí)候,每個(gè)人都會(huì)有不同的分工,此時(shí),每個(gè)人都需要完成自己的文檔,利用合并文件功能就可以快速地將所有內(nèi)容集合在一起,方便了對內(nèi)容的修改。本文將分為以下兩部分介紹如何通過C#合并Word文檔,并附上VB.NET代碼供大家參考。
- 通過插入完整文件來合并文檔
- 通過克隆內(nèi)容合并文檔
程序環(huán)境
本次測試時(shí),在程序中引入Free Spire.Doc for .NET??赏ㄟ^以下方法引用 Free Spire.Doc.dll文件:
方法1:將 Free Spire.Doc for .NET下載到本地,解壓,安裝。安裝完成后,找到安裝路徑下BIN文件夾中的 Spire.Doc.dll。然后在Visual Studio中打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“添加引用”,將本地路徑BIN文件夾下的dll文件添加引用至程序。
方法2:通過NuGet安裝??赏ㄟ^以下2種方法安裝:
(1)可以在Visual Studio中打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“管理NuGet包”,然后搜索“Free Spire.Doc”,點(diǎn)擊“安裝”。等待程序安裝完成。
(2)將以下內(nèi)容復(fù)制到PM控制臺(tái)安裝。
Install-Package FreeSpire.Doc -Version 10.8.0
通過插入完整文件來合并文檔
通過插入完整文件來合并文檔的詳細(xì)步驟如下:
- 創(chuàng)建一個(gè)Document實(shí)例。
- 使用 Document.LoadFromFile() 方法加載原始 Word 文檔。
- 使用 Document.InsertTextFromFile() 方法將另一個(gè) Word 文檔完全插入到原始文檔中。
- 使用 Document.SaveToFile() 方法保存結(jié)果文檔。
完整代碼
C#
using Spire.Doc; namespace MergeWord { class Program { static void Main(string[] args) { //創(chuàng)建一個(gè)Document實(shí)例 Document document = new Document(); //加載原始 Word 文檔 document.LoadFromFile("文檔1.docx", FileFormat.Docx); //插入另一個(gè) Word 文檔到原文檔中 document.InsertTextFromFile("文檔2.docx", FileFormat.Docx); //保存結(jié)果文檔 document.SaveToFile("合并Word文檔.docx", FileFormat.Docx); } } }
VB.NET
Imports Spire.Doc Namespace MergeWord Friend Class Program Private Shared Sub Main(ByVal args As String()) '創(chuàng)建一個(gè)Document實(shí)例 Dim document As Document = New Document() '加載原始 Word 文檔 document.LoadFromFile("文檔1.docx", FileFormat.Docx) '插入另一個(gè) Word 文檔到原文檔中 document.InsertTextFromFile("文檔2.docx", FileFormat.Docx) '保存結(jié)果文檔 document.SaveToFile("合并Word文檔.docx", FileFormat.Docx) End Sub End Class End Namespace
效果圖
通過克隆內(nèi)容合并文檔
通過克隆內(nèi)容合并文檔的具體步驟如下:
- 加載兩個(gè) Word 文檔。
- 循環(huán)遍歷第二個(gè)文檔中的所有節(jié), 然后循環(huán)遍歷每個(gè)節(jié)下的子對象,獲取特定的子對象,準(zhǔn)備插入第一個(gè)文檔。
- 使用 Document.LastSection 屬性獲取第一個(gè)文檔的最后一個(gè)節(jié),然后使用 LastSection.Body.ChildObjects.Add() 方法將子對象添加到第一個(gè)文檔的最后一個(gè)節(jié)。
- 使用 Document.SaveToFile() 方法保存結(jié)果文檔。
完整代碼
C#
using Spire.Doc; namespace MergeWord { class Program { static void Main(string[] args) { //加載兩個(gè) Word 文檔 Document doc1 = new Document("文檔1.docx"); Document doc2 = new Document("文檔2.docx"); //循環(huán)遍歷第二個(gè)文檔以獲取所有節(jié) foreach (Section section in doc2.Sections) { //遍歷第二個(gè)文檔的各個(gè)節(jié)以獲取它們的子對象 foreach (DocumentObject obj in section.Body.ChildObjects) { //獲取第一個(gè)文檔的最后一節(jié) Section lastSection = doc1.LastSection; //將所有子對象添加到第一個(gè)文檔的最后一節(jié) lastSection.Body.ChildObjects.Add(obj.Clone()); } } //保存結(jié)果文檔 doc1.SaveToFile("合并文檔.docx", FileFormat.Docx); } } }
VB.NET
Imports Spire.Doc Namespace MergeWord Friend Class Program Private Shared Sub Main(ByVal args As String()) '加載兩個(gè) Word 文檔 Dim doc1 As Document = New Document("文檔1.docx") Dim doc2 As Document = New Document("文檔2.docx") '循環(huán)遍歷第二個(gè)文檔以獲取所有節(jié) For Each section As Section In doc2.Sections '遍歷第二個(gè)文檔的各個(gè)節(jié)以獲取它們的子對象 For Each obj As DocumentObject In section.Body.ChildObjects '獲取第一個(gè)文檔的最后一節(jié) Dim lastSection As Section = doc1.LastSection '將所有子對象添加到第一個(gè)文檔的最后一節(jié) lastSection.Body.ChildObjects.Add(obj.Clone()) Next Next '保存結(jié)果文檔 doc1.SaveToFile("合并文檔.docx", FileFormat.Docx) End Sub End Class End Namespace
效果圖
到此這篇關(guān)于利用C#實(shí)現(xiàn)合并Word文檔功能的文章就介紹到這了,更多相關(guān)C#合并Word文檔內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#中單問號(hào)(?)和雙問號(hào)(??)的用法整理
本文詳細(xì)講解了C#中單問號(hào)(?)和雙問號(hào)(??)的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05c# 自定義值類型一定不要忘了重寫Equals,否則性能和空間雙雙堪憂
這篇文章主要介紹了c# 自定義值類型一定不要忘了重寫Equals,幫助大家提高c# 程序的性能,感興趣的朋友可以了解下2020-08-08C#日期時(shí)間類的使用方法(DateTime類、TimeSpan類與DateTimeOffset類)
在C#中我們常使用到關(guān)于時(shí)間的相關(guān)操作,這篇文章主要給大家介紹了關(guān)于C#日期時(shí)間類的使用方法,文中介紹的方法分別包括DateTime類、TimeSpan類與DateTimeOffset類的相關(guān)資料,需要的朋友可以參考下2023-11-11