IronXL 開始使用 C# Excel 互操作 C# Excel 互通解決方法 Curtis Chau 更新:2025年8月20日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English 許多專案都使用 Excel 來進行清晰的溝通,但如果您使用的是Microsoft.Office.Interop.Excel ,那麼您很可能已經遇到許多複雜的程式碼行。 在本教學中,我們將使用 IronXL 作為 C# Excel Interop 的變通方案,這樣您就不必使用 Interop 來完成您的專案。 您可以使用 C# 程式設計來使用 Excel 檔案資料、建立 Excel 檔案、編輯和操作所有資料。 ## C# Excel 無互通性 下載 Excel 無互通庫 使用 C# 存取 Excel 文件 建立一個新的 Excel 檔案並透過程式插入數據 修改現有檔案、更新和替換儲存格值、刪除行等等 如何替代使用 Excel Interop 安裝 Excel 庫以處理 Excel 檔案。 開啟Workbook並新增目前 Excel 檔案。 設定預設工作表。 從 Excel 工作簿中讀取值。 處理並顯示該值。 步驟 1 1. 下載 IronXL 庫 下載 IronXL 庫或使用 NuGet 安裝即可免費使用該庫,然後按照本教學的步驟操作,學習如何在不使用 Interop 的情況下使用 Excel。如果您想將項目正式發布,可以購買相應的許可證。 Install-Package IronXL.Excel 操作指南 2. 存取 Excel 文件數據 為了開發商業應用程序,我們需要能夠輕鬆、完美地存取 Excel 文件中的數據,並能夠根據各種要求以程式設計方式操作這些數據。 使用 IronXL 時,可以使用WorkBook.Load()函數,該函數允許讀取特定的 Excel 檔案。 存取工作簿後,您可以使用WorkBook.GetWorkSheet()函數選擇特定的工作表。 現在您已擁有所有Excel檔案資料。 以下範例展示了我們如何在 C# 專案中使用這些函數來取得 Excel 檔案資料。 // Import the IronXL library to access its functionality using IronXL; static void Main(string[] args) { // Access Excel file WorkBook wb = WorkBook.Load("sample.xlsx"); // Access WorkSheet of Excel file WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Get a specific cell value, convert it to a string, and print it string a = ws["A5"].Value.ToString(); Console.WriteLine("Getting Single Value:\n\n Value of Cell A5: {0}", a); Console.WriteLine("\nGetting Many Cells Value using Loop:\n"); // Get multiple cell values using range function and iterate through them foreach (var cell in ws["B2:B10"]) { Console.WriteLine(" Value is: {0}", cell.Text); } Console.ReadKey(); // Pause the console to view output } // Import the IronXL library to access its functionality using IronXL; static void Main(string[] args) { // Access Excel file WorkBook wb = WorkBook.Load("sample.xlsx"); // Access WorkSheet of Excel file WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Get a specific cell value, convert it to a string, and print it string a = ws["A5"].Value.ToString(); Console.WriteLine("Getting Single Value:\n\n Value of Cell A5: {0}", a); Console.WriteLine("\nGetting Many Cells Value using Loop:\n"); // Get multiple cell values using range function and iterate through them foreach (var cell in ws["B2:B10"]) { Console.WriteLine(" Value is: {0}", cell.Text); } Console.ReadKey(); // Pause the console to view output } ' Import the IronXL library to access its functionality Imports Microsoft.VisualBasic Imports IronXL Shared Sub Main(ByVal args() As String) ' Access Excel file Dim wb As WorkBook = WorkBook.Load("sample.xlsx") ' Access WorkSheet of Excel file Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Get a specific cell value, convert it to a string, and print it Dim a As String = ws("A5").Value.ToString() Console.WriteLine("Getting Single Value:" & vbLf & vbLf & " Value of Cell A5: {0}", a) Console.WriteLine(vbLf & "Getting Many Cells Value using Loop:" & vbLf) ' Get multiple cell values using range function and iterate through them For Each cell In ws("B2:B10") Console.WriteLine(" Value is: {0}", cell.Text) Next cell Console.ReadKey() ' Pause the console to view output End Sub $vbLabelText $csharpLabel 這段程式碼將產生以下結果: Excel 文件內容如下: 我們可以看到,我們的 Excel 檔案sample.xlsx的A5儲存格中包含small business 。 B2到B10的其他值相同,並顯示在輸出中。 數據集和數據表 我們也可以使用這些說明將 Excel 檔案作為資料集和資料表進行處理。 // Access WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Convert workbook to DataSet DataSet ds = wb.ToDataSet(); // Convert worksheet to DataTable DataTable dt = ws.ToDataTable(true); // Access WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Convert workbook to DataSet DataSet ds = wb.ToDataSet(); // Convert worksheet to DataTable DataTable dt = ws.ToDataTable(true); ' Access WorkBook and WorkSheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Convert workbook to DataSet Dim ds As DataSet = wb.ToDataSet() ' Convert worksheet to DataTable Dim dt As DataTable = ws.ToDataTable(True) $vbLabelText $csharpLabel 您可以閱讀更多關於如何使用Excel 資料集和資料表的內容,其中提供了更多程式碼範例和流程說明。 現在,我們將看到另一個方面,即在我們的 C# 專案中建立一個新的 Excel 檔案。 3. 建立新的 Excel 文件 我們可以輕鬆地在 C# 專案中建立一個新的 Excel 電子表格,並透過程式設計方式向其中插入資料。 為了實現這一目標,IronXL 提供了WorkBook.Create()函數,該函數會建立一個新的 Excel 檔案。 然後我們可以使用WorkBook.CreateWorkSheet()函數來建立所需數量的工作表。 之後,我們還可以插入數據,如下例所示: // Import the IronXL library using IronXL; static void Main(string[] args) { // Create a new WorkBook WorkBook wb = WorkBook.Create(); // Create a new WorkSheet in the workbook WorkSheet ws = wb.CreateWorkSheet("sheet1"); // Insert data into cells ws["A1"].Value = "New Value A1"; ws["B2"].Value = "New Value B2"; // Save the newly created Excel file wb.SaveAs("NewExcelFile.xlsx"); } // Import the IronXL library using IronXL; static void Main(string[] args) { // Create a new WorkBook WorkBook wb = WorkBook.Create(); // Create a new WorkSheet in the workbook WorkSheet ws = wb.CreateWorkSheet("sheet1"); // Insert data into cells ws["A1"].Value = "New Value A1"; ws["B2"].Value = "New Value B2"; // Save the newly created Excel file wb.SaveAs("NewExcelFile.xlsx"); } ' Import the IronXL library Imports IronXL Shared Sub Main(ByVal args() As String) ' Create a new WorkBook Dim wb As WorkBook = WorkBook.Create() ' Create a new WorkSheet in the workbook Dim ws As WorkSheet = wb.CreateWorkSheet("sheet1") ' Insert data into cells ws("A1").Value = "New Value A1" ws("B2").Value = "New Value B2" ' Save the newly created Excel file wb.SaveAs("NewExcelFile.xlsx") End Sub $vbLabelText $csharpLabel 上述程式碼將建立一個名為NewExcelFile.xlsx的新 Excel 文件,並在儲存格位址A1和B2中分別插入值為New Value A1和New Value B2新資料。 透過這種設置,您可以根據需要以相同的方式插入資料。 注意:如果您要建立新的 Excel 文件或修改現有文件,請不要忘記儲存文件,如上面的範例所示。 深入了解如何使用 C# 建立新的 Excel 電子表格,並在您的專案中嘗試程式碼。 4. 修改現有 Excel 文件 我們可以透過程式設計方式修改現有的 Excel 文件,並將更新的資料插入其中。 在修改Excel檔案時,我們將看到以下幾個方面: 更新儲存格值 將舊值替換為新值 刪除行或列 讓我們看看如何在我們的 C# 專案中實現以上主題。 更新單元格值 更新現有Excel電子表格中的儲存格值非常簡單。 只需在專案中開啟 Excel 檔案並指定其工作表,然後按照以下範例所示更新其資料: // Import the IronXL library using IronXL; static void Main(string[] args) { // Access the WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Update A3 cell value ws["A3"].Value = "New Value of A3"; // Save the updated Excel file wb.SaveAs("sample.xlsx"); } // Import the IronXL library using IronXL; static void Main(string[] args) { // Access the WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Update A3 cell value ws["A3"].Value = "New Value of A3"; // Save the updated Excel file wb.SaveAs("sample.xlsx"); } ' Import the IronXL library Imports IronXL Shared Sub Main(ByVal args() As String) ' Access the WorkBook and WorkSheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Update A3 cell value ws("A3").Value = "New Value of A3" ' Save the updated Excel file wb.SaveAs("sample.xlsx") End Sub $vbLabelText $csharpLabel 上述程式碼會將儲存格A3的值更新為New Value of A3 。 我們也可以使用 range 函數將多個儲存格的值更新為靜態值: ws["A3:C3"].Value = "New Value"; ws["A3:C3"].Value = "New Value"; ws("A3:C3").Value = "New Value" $vbLabelText $csharpLabel 這將使用New Value更新 Excel 檔案中第 3 行A3到C3儲存格的內容。 透過這些範例了解更多關於在 C# 中使用 Range 函數的資訊。 替換單元格值 IronXL 的優點之一在於它能夠輕鬆地將現有 Excel 檔案中的old values替換為new values ,涵蓋以下所有方面: 取代整個工作表中的值: ws.Replace("old value", "new value"); ws.Replace("old value", "new value"); ws.Replace("old value", "new value") $vbLabelText $csharpLabel 替換特定行的值: ws.Rows[RowIndex].Replace("old value", "new value"); ws.Rows[RowIndex].Replace("old value", "new value"); ws.Rows(RowIndex).Replace("old value", "new value") $vbLabelText $csharpLabel 替換特定列的值: ws.Columns[ColumnIndex].Replace("old value", "new Value"); ws.Columns[ColumnIndex].Replace("old value", "new Value"); ws.Columns(ColumnIndex).Replace("old value", "new Value") $vbLabelText $csharpLabel 替換特定範圍內的值: ws["From:To"].Replace("old value", "new value"); ws["From:To"].Replace("old value", "new value"); ws("From:To").Replace("old value", "new value") $vbLabelText $csharpLabel 讓我們來看一個例子,以便清楚地了解如何在我們的 C# 項目中使用上述函數來替換值。 在這個例子中,我們將使用 replace 函數來取代特定範圍內的值。 // Import the IronXL library using IronXL; static void Main(string[] args) { // Access the WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Specify a range from B5 to G5 and replace "Normal" value with "Good" ws["B5:G5"].Replace("Normal", "Good"); // Save the updated Excel file wb.SaveAs("sample.xlsx"); } // Import the IronXL library using IronXL; static void Main(string[] args) { // Access the WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Specify a range from B5 to G5 and replace "Normal" value with "Good" ws["B5:G5"].Replace("Normal", "Good"); // Save the updated Excel file wb.SaveAs("sample.xlsx"); } ' Import the IronXL library Imports IronXL Shared Sub Main(ByVal args() As String) ' Access the WorkBook and WorkSheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Specify a range from B5 to G5 and replace "Normal" value with "Good" ws("B5:G5").Replace("Normal", "Good") ' Save the updated Excel file wb.SaveAs("sample.xlsx") End Sub $vbLabelText $csharpLabel 上述程式碼會將B5到G5中的Normal值替換為Good ,工作表的其餘部分保持不變。 了解更多關於如何使用 IronXL 的此功能編輯 Excel 區域中儲存格值的資訊。 刪除 Excel 檔案中的行 在應用程式開發中,我們有時需要透過程式設計方式刪除現有 Excel 檔案中的整行資料。 為此,我們使用 IronXL 的Remove()函數。 以下是一個範例: // Import the IronXL library using IronXL; static void Main(string[] args) { // Access the WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Remove the row number 2 ws.Rows[2].Remove(); // Save the updated Excel file wb.SaveAs("sample.xlsx"); } // Import the IronXL library using IronXL; static void Main(string[] args) { // Access the WorkBook and WorkSheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Remove the row number 2 ws.Rows[2].Remove(); // Save the updated Excel file wb.SaveAs("sample.xlsx"); } ' Import the IronXL library Imports IronXL Shared Sub Main(ByVal args() As String) ' Access the WorkBook and WorkSheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Remove the row number 2 ws.Rows(2).Remove() ' Save the updated Excel file wb.SaveAs("sample.xlsx") End Sub $vbLabelText $csharpLabel 上述程式碼將刪除sample.xlsx的第2行。 教程快速存取 ### IronXL 參考 請閱讀 IronXL 的 API 參考文檔,以了解有關所有函數、特性、類別和命名空間的更多資訊。 IronXL 參考 常見問題解答 如何在 C# 中讀取不使用互操作的 Excel 文件? 您可以使用 IronXL 在 C# 中讀取 Excel 文件,而不需要使用互操作。使用 WorkBook.Load() 函數加載文件,並使用 WorkBook.GetWorkSheet() 訪問工作表。 在 C# 中如何以編程方式創建新的 Excel 文件? 使用 IronXL,您可以使用 WorkBook.Create() 方法創建新的 Excel 文件,然後使用 WorkSheet.CreateWorkSheet() 添加數據。 是否可以在不使用互操作的情況下在 C# 中修改 Excel 文件? 是的,IronXL 提供了不使用互操作修改 Excel 文件的能力,通過更新單元格值、替換舊值以及直接刪除行或列。 如何使用 IronXL 在 Excel 表中更新特定單元格的值? 要更新單元格值,使用 WorkBook.GetWorkSheet() 加載工作表,為單元格賦予新值,然後保存更改。 我可以使用 IronXL 替換單元格範圍中的值嗎? IronXL 允許您通過在某個工作表或特定範圍對象上使用 Replace() 函數來替換範圍內的值。 使用 IronXL 相對於 Microsoft.Office.Interop.Excel 的優勢是什麼? IronXL 通過提供易於使用的 API 簡化了 Excel 文件操作,減少了複雜的互操作代碼需求,並提供了更好的性能和可靠性。 如何使用 IronXL 從 Excel 文件中刪除行? 要在 IronXL 中刪除行,請在工作表內使用指定的行對象上的 Remove() 函數。 IronXL 是否支持將 Excel 文件轉換為 DataSets 和 DataTables? 是的,IronXL 支持將工作簿轉換為 DataSets 並將工作表轉換為 DataTables,允許更靈活地處理數據。 如何在 C# 專案中安裝 IronXL? 您可以通過 Iron Software 網站下載或使用 NuGet 包管理器命令 Install-Package IronXL.Excel 將 IronXL 安裝在 C# 項目中。 IronXL 適合用於大型 Excel 文件嗎? IronXL 經過優化,可以高效處理大型 Excel 文件,提供快速的處理速度和比傳統互操作方法更少的內存佔用。 Curtis Chau 立即與工程團隊聊天 技術撰稿人 Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。 準備好開始了嗎? Nuget 下載 1,846,091 | 版本: 2026.2 剛剛發布 免費 NuGet 下載 總下載量:1,846,091 查看許可證