如何使用 C# 操作 Word 文檔
微軟開發 Word 的目的是為了用作文字處理軟體。 該軟體最初以 Multi-Tool Word 的名稱面向 Xenix 系統推出,於 1983 年 10 月 25 日發布。隨後,該軟體開發了適用於各種作業系統的版本,例如 SCO Unix (1990)、Microsoft Windows (1989)、Atari ST (1988)、OS/2 (1989)、AT&T UNIX PC (1985)、執行 DOS 的 IBM PC (1983)、AT&T UNIX PC (1985)、執行 DOS 的 IBM PC (1983)、 190175 年運行的 Applepix、Webp、Eppppp、 (2010)、iOS (2014) 和 Android (2015)。 Wine 可用於在 Linux 系統上執行舊版的 Microsoft Word。
商業版 Word 可以作為獨立應用程式或Microsoft 365的元件進行許可,Microsoft 365 可以購買永久許可或作為 Microsoft 365 訂閱的一部分。 在本文中,我們將使用 Microsoft Interop 程式集,使用 C# 操作 Word 文檔,並探討 IronXL 如何協助我們編輯 Excel 文檔。
如何使用 C# 操作 Word 文檔
- 建立一個全新的 Visual Studio 專案。
- 設定讀取 Word 文件所需的庫。
- 若要操作 Word 文檔,請載入現有文件或建立新文件。
- 編輯文檔資料並解析文件。
- 刪除所有已建立的物件。
什麼是 Microsoft Interop
使用 C# 或 VB.NET 編寫的程式可以透過 Office Interoperability for Microsoft Word 建立或開啟 Word 文件(DOC、DOCX 和 RTF)。 然而,在專案中使用時,它有許多缺點。
本文將討論使用 C# 或 VB.NET 進行 Microsoft Office Interop(Word 自動化)時可能遇到的常見問題。
例如:
- 所有用於 Word 自動化的用戶端 PC 都需要獲得 Microsoft Word 的授權。
- 每台客戶端電腦上都必須安裝相同版本的 Microsoft Word。
- 當使用自動化功能時,Word 會佔用幾兆位元組的 RAM 在背景載入不同的檔案和 DLL。
- Microsoft Word API 是透過 COM 物件存取的。 從託管程式碼呼叫 COM 物件時可能會出現問題,例如型別轉換、需要 COM 包裝器以及 .NET Framework 整合不良等。
在 Visual Studio 中建立新項目
使用 Interop 程式庫之前,必須啟動 Visual Studio 並建立一個 .NET 專案。 Visual Studio 與任何版本都相容,但建議使用最新版本。 根據您的需要,您可以開發專案範本或類似 Windows Forms 的應用程式。 為了簡單起見,我將使用控制台應用程式。
如何使用 C# 操作 Word 文件:圖 1 - 建立一個新的 Visual Studio 項目
配置項目詳情
接下來,請提供項目地點和名稱。
如何使用 C# 操作 Word 文件:圖 2 - 設定新的 VS 項目
使用 .NET Framework 建立一個新的專案文件
使用框架下拉式選單,您可以選擇.NET Framework 。 本專案將採用 Dot.NET Framework 4.7。 下一步是按下"創建"按鈕。
應用程式產生解決方案後,您可以透過存取 Program.cs 檔案輸入程式碼並建置或執行程式。
如何使用 C# 操作 Word 文件:圖 3 - 新建 .NET 專案 .cs 文件
現在Microsoft.Office.Interop.Word庫已經加入完畢,我們可以測試程式碼了。
安裝 Interop 庫
下一次修復需要安裝互通性庫。 若要完成此操作,請在 NuGet 套件管理器控制台中輸入以下命令:
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 檔案了。
使用互通性操作現有 Word 文檔
若要使用 Microsoft Word,必須先建立Microsoft.Office.Interop.Word.Application的實例。 在這種情況下,將進行 Word 文件的交流。 下一步是使用我們剛剛建立的Microsoft.Office.Interop.Word.Application實例的Documents屬性建立一個新的 Word 文件實例。 如下面的 C# 程式碼片段所示,這允許我們以程式設計方式操作 Word 文件:
using System;
using Microsoft.Office.Interop.Word;
class Program
{
static void Main()
{
try
{
// Create a new instance of Word Application
var WordApp = new Microsoft.Office.Interop.Word.Application();
// Open an existing document
var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
// Edit the content of the first paragraph
WordDoc.Paragraphs[1].Range.Text = "New text here...";
// Save the edited document
WordDoc.SaveAs(@"d:/NewDemo.docx");
// Close the document
WordDoc.Close();
// Quit the Word application
WordApp.Quit();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}using System;
using Microsoft.Office.Interop.Word;
class Program
{
static void Main()
{
try
{
// Create a new instance of Word Application
var WordApp = new Microsoft.Office.Interop.Word.Application();
// Open an existing document
var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
// Edit the content of the first paragraph
WordDoc.Paragraphs[1].Range.Text = "New text here...";
// Save the edited document
WordDoc.SaveAs(@"d:/NewDemo.docx");
// Close the document
WordDoc.Close();
// Quit the Word application
WordApp.Quit();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}在上面的程式碼中,我們可以使用 C# 編輯 Word 文件。 首先,我們使用 Interop 建立一個 Word 應用程式實例。然後使用Open方法開啟一個現有的 Word 文件,並將其轉換為文檔物件。 然後,我們可以存取與文件互動的各種屬性和方法。 在這個範例中,我們使用Paragraphs集合和索引來指定要編輯的段落,從而更新第一個段落的文字。 最後,使用SaveAs儲存更改,文件和應用程式也正確關閉。
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 套件清單中,我們可以選擇需要下載的套件。
使用 IronXL 編輯 Excel 文檔
只需幾行程式碼即可將資料匯出為 XLSX 或 XLS 格式。 以下原始程式碼範例展示如何將資料從 Excel 檔案匯出為簡單的表格格式:
using IronXL;
class Program
{
static void Main()
{
// Load an existing Excel file
var workbook = WorkBook.Load("Demo file.xlsx");
// Access the first sheet or the sheet by name
var ws = workbook.GetWorkSheet("Sheet1");
// Read a value from a cell and output it to the console
string address_val = ws["A1"].ToString();
Console.WriteLine(address_val);
// Modify a cell's value
ws["A2"].Value = "Hello World";
// Save the workbook to different formats
workbook.SaveAs("export.xlsx");
workbook.SaveAs("export.xls");
workbook.WorkSheets[0].SaveAs("export.xls");
}
}using IronXL;
class Program
{
static void Main()
{
// Load an existing Excel file
var workbook = WorkBook.Load("Demo file.xlsx");
// Access the first sheet or the sheet by name
var ws = workbook.GetWorkSheet("Sheet1");
// Read a value from a cell and output it to the console
string address_val = ws["A1"].ToString();
Console.WriteLine(address_val);
// Modify a cell's value
ws["A2"].Value = "Hello World";
// Save the workbook to different formats
workbook.SaveAs("export.xlsx");
workbook.SaveAs("export.xls");
workbook.WorkSheets[0].SaveAs("export.xls");
}
}前面的範例透過呼叫Load函數來載入一個已存在的 Excel 文件,該函數接受文件路徑和名稱作為參數。 文件匯入到WorkBook物件中已完成。 然後藉助GetWorkSheet函數載入 Excel 工作表,該函數允許我們使用工作表名稱載入工作表。 然後使用 Excel 位址讀取該值。 想了解更多關於讀取Excel檔案的信息,請點擊這裡。
我們可以使用相同的 Excel 位址來變更 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 最初發佈時,售價為$799 。 或者,客戶可以選擇支付一年的訂閱費,以獲得軟體更新和支援。 IronXL 提供收費的防未經授權再分送安全保障。 前往 IronXL 許可頁面。 想了解更多關於Iron Software產品的信息,請點擊這裡。
常見問題解答
如何使用 C# 操作 Word 文件?
若要使用 C# 操作 Word 文檔,可以使用 Microsoft.Office.Interop.Word 程式庫。這包括建立 Word 應用程式實例、開啟文件、進行更改以及以程式設計方式儲存文件。
使用 Microsoft Interop 進行 Word 文件操作有哪些限制?
使用 Microsoft Interop 的限制包括:每台用戶端 PC 上都需要安裝 Microsoft Word 的授權版本、可能存在版本相容性問題,以及由於背景進程而導致記憶體消耗增加。
如何在 Visual Studio 中設定 C# 專案以處理 Word 文件?
在 Visual Studio 中,您可以透過選擇控制台應用程式、配置必要的專案詳細資訊並確保選擇正確的 .NET Framework 版本來建立一個新專案。然後,您需要透過 NuGet 套件管理器新增對 Microsoft.Office.Interop.Word 的參考。
IronXL 和 Microsoft Interop 在處理 Excel 檔案方面有什麼區別?
與 Microsoft Interop 相比,IronXL 具有許多優勢,例如無需安裝 Excel、效能更佳,以及提供更簡潔的 Excel 檔案操作 API。此外,它還消除了 Interop 方法相關的兼容性問題。
如何在我的.NET專案中安裝IronXL?
若要在 .NET 專案中安裝 IronXL,請在 Visual Studio 中開啟 NuGet 套件管理員控制台,然後執行指令Install-Package IronXL.Excel 。您也可以在 NuGet 套件管理器介面中搜尋 IronXL 並直接安裝。
如何使用C#中的IronXL編輯Excel文件?
使用 IronXL,您可以透過WorkBook.Load載入 Excel 文檔,存取特定工作表,修改儲存格值,並使用 WorkBook 和 WorkSheet 物件提供的方法儲存工作簿,從而編輯 Excel 文件。
使用 IronXL 進行 Excel 檔案處理有哪些好處?
IronXL 具有性能提升、易於使用和平台無關等優勢。它無需安裝 Excel,從而消除了依賴關係問題,並可無縫整合到 .NET 應用程式中。
我能否在不使用 Microsoft Interop 的情況下實現 Word 文件任務的自動化?
是的,各種第三方程式庫提供了 Microsoft Interop 的替代方案,用於自動化 Word 文件任務,提供更簡單的 API,並且無需安裝 Microsoft Word。







