使用IRONWORD

如何使用C#操作Word文件

發佈 2023年12月24日
分享:

介紹

微軟創建了Word來作為文字處理器。最初在1983年10月25日,以Multi-Tool Word的名稱在Xenix系統上發布。隨後的版本被開發用於各種操作系統,例如SCO Unix。 (1990),Microsoft Windows (1989)雅達利ST (1988),OS/2 (1989), AT&T UNIX PC (1985)IBM 個人電腦運行 DOS (1983)Apple Macintosh 運行經典 macOS (1985),macOS (2001), 網頁瀏覽器 (2010)iOS (2014)和 Android (2015). Wine 可以用來在 Linux 上運行較舊版本的 Microsoft Word。

商業版的 Word 可以作為獨立應用程式或作為組件進行授權 Microsoft 365,可作為永久許可或作為 Microsoft 365 訂閱的一部分購買。在本文中,我們將藉助 Microsoft Interop 程序集,使用 C# 操作 Word 文件,並探討 IronXL 如何幫助我們編輯 Excel 文件。

如何使用 C# 操作 Word 文件

  1. 新建一個 Visual Studio 專案。

  2. 設置讀取 Word 文件所需的庫。

  3. 操作 Word 文件時,載入現有文件或創建新文件。

  4. 編輯文檔數據並解析文件。

  5. 刪除所有已創建的對象。

什麼是 Microsoft Interop

用 C# 或 VB.NET 編寫的程式可以建立或打開 Word 文件 (DOC、DOCX 和 RTF) 與 Office 互操作性 適用於 Microsoft Word。然而,在項目中使用時存在很多缺陷。

我們將討論在使用 Microsoft Office Interop 時可能遇到的常見問題。 (文件自動化) 從本文中的 C# 或 VB.NET。

例如:

  • 每個需要進行 Word 自動化的客戶端 PC 都需要獲得 Microsoft Word 授權。
  • 在每個客戶端 PC 上,必須安裝同一版本的 Microsoft Word。
  • 當使用自動化時,Word 會在背景中加載不同的文件和 DLL,佔用幾兆字節的 RAM。
  • 通過 COM 對象訪問 Microsoft Word API。從托管代碼調用 COM 對象時可能會出現問題,例如類型轉換、需要 COM 包裝器,以及與 .NET 框架整合不良。

在 Visual Studio 中創建新專案

在使用 Interop 程式庫之前,必須啟動 Visual Studio 並創建一個 .NET 專案。Visual Studio 兼容任何版本,但建議使用最新版本。根據您的需求,您可以開發專案模板或類似 Windows Forms 的應用程式。在這種情況下,為了簡單起見,我將使用主控台應用程式。

如何使用 C# 操作 Word 文件:圖 1 - 建立新的 Visual Studio 專案

設置專案詳細資訊

接下來,請提供專案的位置和名稱。

如何使用 C# 操作 Word 文件:圖 2 - 配置新的 VS 項目

使用 .NET 框架建立新專案檔案

利用框架下拉選單,您可以選擇 .NET框架. 這個專案將使用 .NET Framework 4.7。接下來的動作是按下「Create」按鈕。

應用程式生成解決方案後,您可以通過訪問 Program.cs 檔案來輸入代碼並建置或運行這個程式。

如何使用 C# 操作 Word 文件:圖 3 - 新的 .NET 項目 .cs 文件

現在已經添加了 Microsoft.Office.Interop.Word 庫,我們可以測試代碼了。

安裝互操作庫

接下來的修復需要安裝互操作庫。在 NuGet Package Manager Console 中輸入以下命令來完成此操作:

:InstallCmd: Install-Package Microsoft.Office.Interop.Word

如何使用C#操作Word文檔:圖4 - 要安裝IronXL庫,您可以使用套件管理器控制台並輸入以下命令:Install-Package IronXL.Excel

另一種查找 "Interop" 套件的方法是使用 NuGet 套件管理器。在所有與 Interop 相關的 NuGet 套件中,我們可以從此列表中選擇所需的套件進行下載。

如何使用 C# 操作 Word 文件:圖 5 - 選擇 `Microsoft.Office.Interop.Word` 庫

一旦安裝了所有必要的庫之後,您就可以開始編輯 DOCX 文件了。

使用 Interop 操作现有的 Word 文件

要使用 Microsoft Word,您必須先創建一個 Microsoft.Office.Interop.Word.Application 的實例。Word 文件的通信将在此實例中進行。下一步是使用剛剛創建的 Microsoft.Office.Interop.Word.Application 實例的 Documents 屬性創建一個新的 Word 文件實例。如下方 C# 代碼摘錄所示,這使我們能夠以編程方式操作 Word 文件。

using System;
using System.Data;
using Microsoft.Office.Interop.Word;
try
{
    var WordApp = new Microsoft.Office.Interop.Word.Application();
    var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
    WordDoc.Paragraphs [1].Range.Text = "New text here...";
    WordDoc.SaveAs(@"d:/NewDemo.docx");
    WordDoc.Close();
    WordApp.Quit();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
using System;
using System.Data;
using Microsoft.Office.Interop.Word;
try
{
    var WordApp = new Microsoft.Office.Interop.Word.Application();
    var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
    WordDoc.Paragraphs [1].Range.Text = "New text here...";
    WordDoc.SaveAs(@"d:/NewDemo.docx");
    WordDoc.Close();
    WordApp.Quit();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
Imports System
Imports System.Data
Imports Microsoft.Office.Interop.Word
Try
	Dim WordApp = New Microsoft.Office.Interop.Word.Application()
	Dim WordDoc = WordApp.Documents.Open("d:/Demo.docx")
	WordDoc.Paragraphs (1).Range.Text = "New text here..."
	WordDoc.SaveAs("d:/NewDemo.docx")
	WordDoc.Close()
	WordApp.Quit()
Catch ex As Exception
	Console.WriteLine(ex.ToString())
End Try
VB   C#

在上面的程式碼中,我們可以在C#中編輯Word文件。首先,我們為Interop使用的文字處理器創建一個項目物件。通過創建的物件,它具有一個開啟方法,允許我們傳遞現有的Word文件名稱。這幫助我們將文件轉換為文檔物件。

通過使用文檔物件,我們可以獲取與現有Word文件相關的所有處理過程。然後使用段落物件,我們可以獲取DOCX文件中的所有內容。使用陣列,我們可以替換每一段落中的文本,具體段落可以通過在陣列中傳遞它們來實現。然後,我們可以將它們保存為新的MS Word文件,作為DOCX文件。我們還可以使用Interop創建Word文件。

IronXL 庫取代 Interop

IronXL 是 Microsoft Interop 的替代方案,可用於 .NET 程式來處理 Excel 檔案。雖然 Microsoft Interop 需要透過 Interop 程式集與 Excel 互動,但 IronXL 提供了一種更簡單、高效且強大的方法來以程式方式在 .NET 環境中操作 Excel 檔案。

利用 IronXL 而非 Microsoft Interop 有幾個好處,例如:

  • 性能與資源效率:與依賴安裝在電腦上的 Excel 應用程式的 Microsoft Interop 相比,IronXL 表現更佳,且使用的資源更少,因為它不依賴於 Excel 應用程式。
  • 易於使用和簡單性:IronXL 提供了一個更易於使用的 API,簡化了讀取、寫入和操作 Excel 檔案,沒有 Microsoft Interop 隨之而來的複雜性。
  • 相容性和依賴性:IronXL 通過不需在電腦上安裝 Microsoft Excel,消除了可能在不同 Excel 或 Office 版本中出現的依賴性和相容性問題。
  • 平台獨立性:與可能更依賴特定 Microsoft Office 版本的 Microsoft Interop 不同,IronXL 提供了更大的靈活性,並且更容易在各種環境和平台中部署。

對於需要程式方式操作 Excel 檔案的 .NET 開發人員來說,IronXL 通常是一個更好的選擇,因為它易於使用、速度快且對第三方軟體安裝的依賴程度低。然而,IronXL 與 Microsoft Interop 之間的選擇可能會受到專案的具體情況、現有基礎設施以及使用者對每個庫的熟悉程度的影響。

在這些選擇之間做決定時,請始終記住應用程式的需求。請訪問此 連結 了解更多有關IronXL庫的資訊。

安裝 IronXL 函式庫

由於即將到來的補丁需要 IronXL 函式庫,請安裝它。 為了完成這個操作,打開 NuGet 套件管理員控制台並輸入以下命令:

Install-Package IronWord

如何使用C#操作Word文件:圖6 - 使用控制台命令安裝IronXL

透過 NuGet 套件管理器搜尋 "IronXL" 套件是另一個選擇。從這個 IronXL 相關的所有 NuGet 套件列表中,我們可以選擇我們需要下載的那個。

如何使用 C# 操作 Word 文件:圖 7 - 通過瀏覽安裝 `IronXL.Excel` 套件

使用 IronXL 編輯 Excel 文檔

數據可以通過幾行代碼匯出到 .XLSX 或 .XLS 格式。以下是來源代碼的示例,顯示了如何將數據從 Excel 文件導出到簡單的表格式:

var workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx");
WorkSheet ws = workbook.GetWorkSheet("Sheet1");
string address_val = ws ["A1"].ToString();
console.writeline(address_val);
ws ["A2"].Value = "Hello World";
workbook.SaveAs("export.xlsx");
//or
workbook.SaveAs("export.xls");
//or
workbook.WorkSheets [0].SaveAs("export.xls");
var workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx");
WorkSheet ws = workbook.GetWorkSheet("Sheet1");
string address_val = ws ["A1"].ToString();
console.writeline(address_val);
ws ["A2"].Value = "Hello World";
workbook.SaveAs("export.xlsx");
//or
workbook.SaveAs("export.xls");
//or
workbook.WorkSheets [0].SaveAs("export.xls");
Dim workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx")
Dim ws As WorkSheet = workbook.GetWorkSheet("Sheet1")
Dim address_val As String = ws ("A1").ToString()
console.writeline(address_val)
ws ("A2").Value = "Hello World"
workbook.SaveAs("export.xlsx")
'or
workbook.SaveAs("export.xls")
'or
workbook.WorkSheets (0).SaveAs("export.xls")
VB   C#

前面的示例通過調用 LoadExcel 函數加載已存在的 Excel 文件,該函數接受文件路徑和名稱作為參數。將文件導入到 Workbook 對象現在已完成。然後使用 GetWorkSheet 幫助加載 Excel 工作表,這允許我們使用工作表名稱加載工作表。然後使用 Excel 地址來讀取值。要了解更多有關閱讀 Excel 文件的信息,請點擊 這裡我們可以利用相同的 Excel URL 來更改 Excel 表格的值。可以利用 'Workbook' 物件提供的 SaveAs 函數,將 Excel 文件保存為 XLSX 或 XLS 文件。通過這個過程,整個文件將以所選格式保存。

如何使用 C# 操作 Word 文件:圖 8 - 控制台輸出

另外,我們可以通過使用其索引值或名稱來選擇特定的 Excel 工作表。接下來,我們可以使用 SaveAs 選項將 Excel 試算表中的數據導出到另一個文件。點擊這個 連結 了解更多有關格式化和匯出 Excel 文件的資訊。

結論

IronXL 是 Excel 最受歡迎的附加元件之一。不依賴任何附加的外部程式庫。不需要安裝 Microsoft Excel,因為它是自包含的。它通過多種通道運行。這與 Interop 程式庫形成對比,Interop 程式庫必須透過額外的程式庫來分析文件以編輯 Word 文件。

IronXL 是利用 Microsoft Excel 文件的任何編程過程的完整解決方案。計算、排序字串或數字、修剪、添加、查找和替換、合併和解除合併以及文件存儲只是其中一些可用的操作。不僅可以驗證電子表格數據,還可以構建新的單元數據形式。它便於讀取和寫入文件以及處理 Excel 數據。

IronXL 剛推出時,價格為 $749。或者,客戶可以選擇支付一年的訂閱費來接收軟體更新和支援。收費時,IronXL 提供防止未經授權重新分發的安全性。請訪問 IronXL 許可證 頁面如需了解更多有關Iron Software產品的信息,請查看 這裡.

< 上一頁
如何使用 C# 讀取 Word 檔案
下一個 >
如何在 C# 中建立 Word 文件

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 5,614 查看許可證 >