首頁 > 軟體

利用C#實現合併Word檔案功能

2022-12-09 14:03:28

合併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檔案功能的文章就介紹到這了,更多相關C#合併Word檔案內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com