跳至頁尾內容
使用 IRONXL

使用 IronXL 在 C# 中讀取 Excel 檔案的最佳方法

各位好,如果您一直在尋找用 C# 閱讀 Excel 檔案的最佳方法,而不需要複雜的設定,本教學正是您所需要的。 IronXL for .NET 是一個 .NET 函式庫,讓 Excel 檔案的管理變得非常簡單,最棒的是什麼? 不需要在您的系統上安裝 Microsoft Excel。

以程式化的方式處理 Microsoft Excel 檔案向來都很具挑戰性。 許多函式庫需要 Office 的依賴,或產生冗長、容易出錯的程式碼。 IronXL 透過提供乾淨、直覺式的 API 來改變這一情況,以最小的工作量處理 XLSX、XLS 和 CSV 檔案。 準備好開始? 註冊免費試用並跟隨使用。

在 C# 中讀取 Excel 檔案的最佳方式是什麼;? 在 C# 中讀取 Excel 檔案的最佳方法是使用 IronXL 之類的專用函式庫,該函式庫獨立於 Microsoft Office 運作。這種方法在 .NET Framework 和 .NET Core 專案中都運作良好,讓使用者解析試算表資料時,不會為版本相容性而頭痛。 IronXL.Excel 基本上提供一個 Excel 閱讀器,可將整個檔案載入工作簿物件,讓您直接存取每個工作表、每行、每列和每個儲存格。 與需要管理隱藏複雜性的基於 XML 的解決方案不同,IronXL.Excel 的 API 可讓您使用熟悉的 Excel 符號(如 sheet["A1"] )參照單元,或使用 foreach 環路遍歷整個範圍。 !{--01001100010010010100001001010010010000010101001001011001010111110100011101000101010101 01000101111101010011010101000100000101010010010101000100010101000100010111110101011101001000110 1010101000100100001011111010100000101001001001111010001000101010101010000110101010100101010101011 10101010001010010010010010010000010100110001011111010000100100110001001111101000011010010111111010000110100101110--

如何在 Visual Studio 中安裝 Excel Reader 函式庫? 透過 Visual Studio 中的 NuGet 安裝只需數秒。 在套件管理員控制台執行此指令: ```shell :ProductInstall ``` 該函式庫支援多種 .NET 版本,因此無論您的應用程式以 .NET Framework 4.6.2+ 或 .NET Core 3.1+ 為目標,IronXL 都能無縫整合。 安裝完成後,將 IronXL 參考檔加入您的程式碼檔案,就可以開始閱讀 Excel 檔案了。

如何載入和讀取 Excel 工作簿? 載入 Excel 工作簿只需要一行程式碼。 WorkBook.Load 方法接受檔案名稱,並自動偵測格式,XLSX 檔案、XLS 檔案或 CSV 檔案的運作方式都相同。 ```cs class Program { public static void Main(string[] args) { // Load an Excel workbook from file WorkBook workbook = WorkBook.Load("financial_report.xlsx"); // Access the first worksheet by index WorkSheet worksheet = workbook.WorkSheets[0]; // Or get a specific sheet by name WorkSheet dataSheet = workbook.GetWorkSheet("Expenses"); Console.WriteLine($"Loaded workbook with {workbook.WorkSheets.Count} sheets"); } } ``` ### 載入工作簿的控制台確認 ![使用 IronXL 在 C# 中讀取 Excel 檔案的最佳方法:圖像 1 - 確認已載入工作簿的控制台輸出](/static-assets/excel/blog/best-way-read-excel-csharp/best-way-read-excel-csharp-1.webp)。 WorkBook 物件代表整個 Excel 工作簿,而每個 WorkSheet 實例對應該工作簿中的單獨工作表。 此結構反映 Excel 格式組織資料的方式,讓已熟悉試算表概念的開發人員可以直覺地使用 API。 載入檔案時,IronXL 會將所有儲存格、公式和格式解析至記憶體中。 然後您可以讀取數值、修改內容或將變更儲存回磁碟。 有關載入選項的其他資訊,請參閱 [載入試算表文件](/csharp/excel/how-to/load-spreadsheet/)。

如何從 Excel 工作表中讀取儲存格值? 讀取儲存格包括透過位址存取儲存格或透過範圍迭代。 IronXL 提供 StringValue、IntValue 和 DecimalValue 等強排序屬性,可將儲存格資料解析為正確的系統類型。 ```cs using IronXL; using System; WorkBook workbook = WorkBook.Load("Products.xlsx"); WorkSheet sheet = workbook.DefaultWorkSheet; // Read individual cell values with type conversion string productName = sheet["A2"].StringValue; int quantity = sheet["B2"].IntValue; decimal price = sheet["C2"].DecimalValue; // Check for null or empty cells before processing var cell = sheet["D2"]; if (cell.Value != null) { Console.WriteLine($"Product: {productName}, Qty: {quantity}, Price: {price}"); } // Access cells using row and column index (zero-based) int columnIndex = 0; var firstCell = sheet.Rows[1].Columns[columnIndex]; ``` ### 輸出 ![使用 IronXL 在 C# 中讀取 Excel 檔案的最佳方法:圖像 2 - 使用 IronXL 簡單讀取 Excel 輸出](/static-assets/excel/blog/best-way-read-excel-csharp/best-way-read-excel-csharp-2.webp)。 每個儲存格物件包含原始值加上格式化的元資料。 當您需要程式化的欄位存取,而非基於字母的參照時,int columnIndex 方法就很好用。 如果儲存格包含公式,IronXL 會評估公式並傳回計算結果。

如何迭代行和儲存格? 處理整個檔案通常需要在行和單元格之間進行循環。 foreach 模式使其優雅且易讀,非常適合資料抽取或驗證任務。 ```cs using IronXL; using System; WorkBook workbook = WorkBook.Load(@"financial_report.xlsx"); WorkSheet sheet = workbook.WorkSheets[0]; // Skip column headers in first row, process data rows foreach (var row in sheet["A2:D7"]) { Console.WriteLine($"Cell {row.AddressString}: {row.Text}"); } // Iterate through specific row range for (int i = 1; i < sheet.Rows.Length; i++) { var currentRow = sheet.Rows[i]; // Access each column in the row foreach (var cell in currentRow) { if (cell.Value != null) { Console.Write($"{cell.StringValue}\t"); } } Console.WriteLine(); } ``` ![Best Way to Read Excel File in C# with IronXL: Image 3 - Output for iterating through rows](/static-assets/excel/blog/best-way-read-excel-csharp/best-way-read-excel-csharp-3.webp) 範圍語法 ["A2:D100"]會建立一個可迭代的儲存格集合。 此方法可有效處理大型試算表,且不會載入不必要的資料。 當您需要逐行或逐列處理時,也可以直接存取 Rows 和 Columns 集合。

如何解析多種 Excel 格式? IronXL 可以透明地處理各種 Excel 格式。 無論您是閱讀傳統的 XLS 檔案、現代的 XLSX 檔案或純 CSV 檔案,相同的程式碼都能在所有格式中運作。 ```cs using IronXL; // Load different format types - the API remains consistent WorkBook xlsxBook = WorkBook.Load("Modern.xlsx"); WorkBook xlsBook = WorkBook.Load("Legacy.xls"); WorkBook csvBook = WorkBook.Load("Data.csv"); // All workbooks expose identical worksheet access WorkSheet sheet1 = xlsxBook.DefaultWorkSheet; WorkSheet sheet2 = xlsBook.DefaultWorkSheet; WorkSheet sheet3 = csvBook.DefaultWorkSheet; // Write to different formats xlsxBook.SaveAs("Output.csv"); csvBook.SaveAs("Converted.xlsx"); ``` 當您的程式必須處理來自不同來源的檔案時,這種格式上的彈性會很有幫助。 該函式庫可從檔案副檔名和內容標頭自動偵測 Excel 格式,因此您不需要特定格式的程式碼路徑。 對於 CSV 檔案,IronXL 尊重逗號分隔符和引號字串值等常見慣例。

我可以執行哪些進階操作? 除了基本閱讀之外,IronXL 還支援聚合計算、LINQ 查詢和資料處理。 這些先進的功能可將原始試算表資料轉換為可行的洞察力。 ```cs using IronXL; using System; using System.Linq; WorkBook workbook = WorkBook.Load("Financials.xlsx"); WorkSheet sheet = workbook.DefaultWorkSheet; // Calculate sum of values in a range decimal totalSales = sheet["B2:B50"].Sum(); // Use LINQ for advanced queries decimal maxValue = sheet["C2:C50"].Max(c => c.DecimalValue); var highValues = sheet["C2:C50"].Where(c => c.DecimalValue > 1000); // Create instance of calculated results Console.WriteLine($"Total: {totalSales}, Maximum: {maxValue}"); // Modify and save changes sheet["D2"].Value = totalSales; workbook.Save(); ``` ### 進階閱讀作業輸出 ![使用 IronXL 在 C# 中讀取 Excel 檔案的最佳方法:圖像 4 - 進階讀取作業控制台輸出](/static-assets/excel/blog/best-way-read-excel-csharp/best-way-read-excel-csharp-4.webp)。 LINQ 相容性開啟了強大的資料處理功能,無須手動撰寫迴圈。 您可以使用熟悉的 C# 模式來過濾、排序和匯集儲存格數值。 對於有列頭的表格,IronXL 甚至可以透過列頭名稱而非儲存格位址來引用資料。 這些功能顯示 IronXL 不只是 Excel 閱讀器,更是完整的試算表處理函式庫。 無論您是需要建立報表、驗證資料或匯出至資料庫,API 都能提供相關工具,而不會產生例外處理的惡夢或 Office 相依性問題。 ## 摘要 以 C# 語言閱讀 Excel 檔案並不一定很複雜。 IronXL 提供現代化、無依賴性的方法,可跨 .NET Framework 和 .NET Core 專案運作。 從載入簡單的 XLSX 檔案到對儲存格資料執行複雜的 LINQ 查詢,這個函式庫都能以乾淨、可讀的代碼處理。 本文章中的範例展示了您每天都會用到的核心模式:載入工作簿、存取工作表、讀取單元值以及迭代資料。 這些模式可從簡單的腳本擴展至企業應用程式,無須修改。 準備好簡化您的 Excel 檔案處理了嗎? [購買授權](/csharp/excel/licensing/)以釋放 IronXL 在生產中的全部潛力,或探索 [完整的 API 參考](/csharp/excel/object-reference/api/),以瞭解可用方法和屬性的其他詳細資訊。

常見問題解答

在 C# 中讀取 Excel 檔案的最佳方法是什麼?

在 C# 中讀取 Excel 檔案的最佳方法是使用 IronXL 庫。它允許您在無需在系統上安裝 Microsoft Excel 的情況下處理 Excel 文件。

使用 IronXL 需要安裝 Microsoft Office 嗎?

不,使用 IronXL 不需要安裝 Microsoft Office。它是一個獨立的 .NET 庫,專為 Excel 文件處理而設計。

IronXL可以讀取哪些類型的Excel檔案?

IronXL 可以讀取各種類型的 Excel 文件,包括 XLSX、XLS 和 CSV 格式。

IronXL 是否容易整合到 C# 專案中?

是的,IronXL 的設計宗旨就是為了方便整合到 C# 專案中,它為開發人員提供了一個簡單的 API。

IronXL 能解析 CSV 檔案嗎?

是的,IronXL 除了可以解析 XLSX 和 XLS 檔案外,還可以解析 CSV 檔案。

使用 IronXL 進行 Excel 檔案操作有哪些優勢?

IronXL 提供簡單易用的設置,不依賴 Microsoft Excel,並支援多種 Excel 文件格式,因此可以有效地進行各種文件操作。

使用 IronXL 是否需要複雜的設定?

不,IronXL 不需要複雜的設置,因此開發人員可以輕鬆管理 Excel 檔案。

為什麼選擇 IronXL 而不是 Interop 來進行 Excel 檔案處理?

IronXL 比 Interop 更受歡迎,因為它更簡單,不需要 Microsoft Excel,並且在處理 Excel 檔案方面表現更好。

喬迪·巴迪亞
軟體工程師
喬迪精通Python、C#和C++,除了在Iron Software運用這些技能外,他還從事遊戲程式設計。他參與產品測試、產品開發和研究等工作,為產品的持續改進做出了巨大貢獻。豐富的經驗讓他始終保持挑戰性和工作熱情,他表示這是他最喜歡在Iron Software工作的原因之一。喬迪在佛羅裡達州邁阿密長大,畢業於佛羅裡達大學,主修電腦科學和統計學。