使用 IRONXL 如何使用 IronXL 在 C# 中輕鬆匯入、讀取和操作 MS Excel 檔案數據 Jordi Bardia 發表日期:12月 18, 2025 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在雙子座打開 請向 Gemini 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 對於許多 .NET 開發人員來說,處理 Microsoft Excel 檔案是日常工作的一部分。 無論是匯入客戶資料、處理財務報告,還是將資料從電子表格或 Excel 工作簿遷移到資料庫,開發人員都需要一種可靠的方法來讀取 Excel 文件或匯出 Excel (XLSX) 文件,而無需複雜的依賴關係或安裝 Excel。 IronXL提供了一個簡單易用的解決方案,可跨平台運行,無需安裝 Microsoft Office。 如何使用 IronXL 在 C# 中輕鬆匯入、讀取和操作 MS Excel 檔案資料:圖 1 - IronXL 如何開始使用 C# 匯入 Excel 資料? 使用 IronXL,只需幾分鐘即可開始在 C# 中匯入 Excel 檔案。 Excel 函式庫可以無縫處理傳統的 XLS 和現代的 XLSX 格式,以及CSV 、TSV 和其他電子表格格式。 與依賴Microsoft.Office.Interop.Excel的解決方案不同,IronXL 可以在任何 .NET 或 .NET Core 平台上獨立運作。 如何使用 IronXL 在 C# 中輕鬆匯入、讀取和操作 MS Excel 檔案資料:圖 2 - 跨平台 首先,透過 NuGet 套件管理器安裝 IronXL,或在 Visual Studio 中選擇"管理 NuGet 套件": Install-Package IronXL.Excel 如何使用 IronXL 在 C# 中輕鬆匯入、讀取和操作 MS Excel 檔案資料:圖 3 - 安裝 安裝完成後,匯入Excel資料變得非常簡單: using IronXL; static void Main(string[] args) { // Load any Excel file WorkBook workBook = WorkBook.Load("ProductData.xlsx"); // Access the first worksheet WorkSheet sheet = workBook.WorkSheets[0]; // Read a cell value string value = sheet["B1"].StringValue; Console.WriteLine(value); } using IronXL; static void Main(string[] args) { // Load any Excel file WorkBook workBook = WorkBook.Load("ProductData.xlsx"); // Access the first worksheet WorkSheet sheet = workBook.WorkSheets[0]; // Read a cell value string value = sheet["B1"].StringValue; Console.WriteLine(value); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 這段程式碼示範了核心工作流程:載入工作簿、存取工作表和讀取儲存格值。 WorkBook.Load() 方法會自動偵測檔案格式,無論是 XLS、XLSX 或 CSV。直覺的索引語法 sheet["B1"] 使得存取儲存格就像操作陣列一樣自然。 如需更複雜的操作,請查閱IronXL API 參考文件以取得完整文件。 範例輸入 如何使用 IronXL 在 C# 中輕鬆匯入、讀取和操作 MS Excel 檔案資料:圖 4 - Excel 輸入 輸出 如何使用 IronXL 在 C# 中輕鬆匯入、讀取和操作 MS Excel 檔案資料:圖 5 - 控制台輸出 如何將Excel資料讀入C#物件? 實際應用需要的不只單一儲存格的值。 IronXL 擅長匯入整個資料集並將其轉換為可用的 C# 物件。 當您需要匯入包含結構化資料的 Excel 檔案時,該程式庫提供了多種方法。 // Load the Excel file WorkBook workBook = WorkBook.Load("ProductData.xlsx"); WorkSheet sheet = workBook.DefaultWorkSheet; // Read a range of cells var products = new List<Product>(); foreach (var row in sheet.Rows) { var product = new Product { Id = row.Columns[0].IntValue, Name = row.Columns[1].StringValue, Price = row.Columns[2].DecimalValue, IsAvailable = row.Columns[3].BoolValue }; products.Add(product); } foreach (var product in products) { Console.WriteLine($"Id: {product.Id}, Name: {product.Name}, Price: {product.Price}, Available: {product.IsAvailable}"); } // Load the Excel file WorkBook workBook = WorkBook.Load("ProductData.xlsx"); WorkSheet sheet = workBook.DefaultWorkSheet; // Read a range of cells var products = new List<Product>(); foreach (var row in sheet.Rows) { var product = new Product { Id = row.Columns[0].IntValue, Name = row.Columns[1].StringValue, Price = row.Columns[2].DecimalValue, IsAvailable = row.Columns[3].BoolValue }; products.Add(product); } foreach (var product in products) { Console.WriteLine($"Id: {product.Id}, Name: {product.Name}, Price: {product.Price}, Available: {product.IsAvailable}"); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 本範例展示如何遍歷行並將 Excel 資料對應到強型別 C# 物件。 類型化屬性(如 IntValue、StringValue 和 DecimalValue)會自動處理型別轉換。 這種方法無需手動解析,並能減少處理不同資料類型時出現的錯誤。 Stack Overflow上的許多開發者都很欣賞這種類型安全的 Excel 資料匯入方法。 輸出 如何使用 IronXL 在 C# 中輕鬆匯入、讀取和操作 MS Excel 檔案資料:圖 6 - 物件輸出 為了更優雅地存取數據,IronXL 支援範圍操作: // Read specific ranges of ProductData.xlsx file Range dataRange = sheet["A1:D5"]; // Calculate aggregates directly decimal sum = sheet["C1:C5"].Sum(); Console.WriteLine($"Sum of C1:C5: {sum}"); decimal max = sheet["C1:C5"].Max(c => c.DecimalValue); Console.WriteLine($"Max of C1:C5: {max}"); // Use LINQ for filtering var highValueOrders = dataRange .Where(cell => cell.DecimalValue > 100) .Select(cell => cell.Value) .ToList(); Console.WriteLine("High value orders (>100):"); // Print the high value orders to the console foreach (var order in highValueOrders) { Console.WriteLine(order); } // Read specific ranges of ProductData.xlsx file Range dataRange = sheet["A1:D5"]; // Calculate aggregates directly decimal sum = sheet["C1:C5"].Sum(); Console.WriteLine($"Sum of C1:C5: {sum}"); decimal max = sheet["C1:C5"].Max(c => c.DecimalValue); Console.WriteLine($"Max of C1:C5: {max}"); // Use LINQ for filtering var highValueOrders = dataRange .Where(cell => cell.DecimalValue > 100) .Select(cell => cell.Value) .ToList(); Console.WriteLine("High value orders (>100):"); // Print the high value orders to the console foreach (var order in highValueOrders) { Console.WriteLine(order); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel Range 類別提供了類似集合的方式,可以同時存取多個單元格。 LINQ 相容性意味著開發人員可以使用熟悉的 C# 模式來篩選、轉換和聚合 Excel 資料。 內建的聚合方法,如 Sum() 和 Max(),直接對單元格範圍進行操作,而無需先將所有資料載入到記憶體中。 輸出 如何使用 IronXL 在 C# 中輕鬆匯入、讀取和操作 MS Excel 檔案資料:圖 7 - 範圍輸出 如何將Excel表格轉換為DataTable? DataTable 轉換對於資料庫操作和資料綁定場景至關重要。 IronXL 提供了內建方法,可以有效地處理從Excel 到 DataTable 的轉換。當您需要將 Excel 電子表格匯入 SQL Server 或其他資料庫時,此功能尤其有用。 using System.Data; // Load Excel file WorkBook workBook = WorkBook.Load("inventory.xlsx"); // Select first Excel worksheet WorkSheet sheet = workBook.WorkSheets.First(); // Convert to DataTable with headers DataTable dataTable = sheet.ToDataTable(true); // The DataTable is ready for database operations using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString)) { bulkCopy.DestinationTableName = "Inventory"; bulkCopy.WriteToServer(dataTable); } using System.Data; // Load Excel file WorkBook workBook = WorkBook.Load("inventory.xlsx"); // Select first Excel worksheet WorkSheet sheet = workBook.WorkSheets.First(); // Convert to DataTable with headers DataTable dataTable = sheet.ToDataTable(true); // The DataTable is ready for database operations using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString)) { bulkCopy.DestinationTableName = "Inventory"; bulkCopy.WriteToServer(dataTable); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel ToDataTable() 方法接受一個布林參數,指示第一行是否包含標題。 當設定為 true 時,IronXL 會自動將第一行值用作 DataTable 中的列名。 此資料表可與 ADO.NET 操作、實體框架和資料綁定控制項無縫整合。 微軟關於 SqlBulkCopy 的文檔展示了這種模式如何有效率地處理大規模資料導入。 為了更好地控制轉換過程: // Custom DataTable conversion DataTable customTable = new DataTable(); // Define columns based on Excel structure for (int col = 0; col < sheet.ColumnCount; col++) { customTable.Columns.Add($"Column{col + 1}", typeof(string)); } // Import data with validation foreach (var row in sheet.Rows) { var dataRow = customTable.NewRow(); for (int col = 0; col < sheet.ColumnCount; col++) { dataRow[col] = row.Columns[col].Value ?? DBNull.Value; } customTable.Rows.Add(dataRow); } // Print column headers foreach (DataColumn column in customTable.Columns) { Console.Write($"{column.ColumnName}\t"); } Console.WriteLine(); // Print each row foreach (DataRow row in customTable.Rows) { foreach (var item in row.ItemArray) { Console.Write($"{item}\t"); } Console.WriteLine(); } // Custom DataTable conversion DataTable customTable = new DataTable(); // Define columns based on Excel structure for (int col = 0; col < sheet.ColumnCount; col++) { customTable.Columns.Add($"Column{col + 1}", typeof(string)); } // Import data with validation foreach (var row in sheet.Rows) { var dataRow = customTable.NewRow(); for (int col = 0; col < sheet.ColumnCount; col++) { dataRow[col] = row.Columns[col].Value ?? DBNull.Value; } customTable.Rows.Add(dataRow); } // Print column headers foreach (DataColumn column in customTable.Columns) { Console.Write($"{column.ColumnName}\t"); } Console.WriteLine(); // Print each row foreach (DataRow row in customTable.Rows) { foreach (var item in row.ItemArray) { Console.Write($"{item}\t"); } Console.WriteLine(); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 這種方法為導入過程中的資料轉換提供了靈活性。 透過將空值轉換為 DBNull.Value 來優雅地處理空值,從而確保與資料庫操作的兼容性。 輸出 如何使用 IronXL 在 C# 中輕鬆匯入、讀取和操作 MS Excel 檔案資料:圖 8 - 資料表輸出 哪些進階功能支援數據處理? IronXL 不僅具備基本的閱讀功能,還擁有應對複雜場景的強大功能。 該庫保留了 Excel 公式,允許計算結果動態更新。 對於處理複雜 Excel 工作簿的開發人員來說,這可以在整個匯入過程中保持資料完整性。 如何使用 IronXL 在 C# 中輕鬆匯入、讀取和操作 MS Excel 檔案資料:圖 9 - 功能 // Read calculated values from formulas WorkSheet sheet = workBook.GetWorkSheet("Reports"); decimal calculatedTotal = sheet["E10"].DecimalValue; // Reads formula result // Formulas remain intact string formula = sheet["E10"].Formula; // Returns "=SUM(E2:E9)" // Read calculated values from formulas WorkSheet sheet = workBook.GetWorkSheet("Reports"); decimal calculatedTotal = sheet["E10"].DecimalValue; // Reads formula result // Formulas remain intact string formula = sheet["E10"].Formula; // Returns "=SUM(E2:E9)" IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 支援公式功能意味著匯入包含複雜計算的 Excel 檔案無需重新建立業務邏輯即可正常運作。 該函式庫會自動計算公式,傳回計算值,同時保留原始公式結構。 當您需要讀取包含財務模型或報告範本的 Excel 檔案時,此功能將非常有用。 跨平台相容性確保在 Windows、Linux、macOS 和容器環境中行為一致。 IronXL 的這種靈活性使其成為雲端部署和微服務架構的理想選擇,在這些情況下,安裝 Office 是不可行的。 .NET 基金會的文檔重點介紹了現代 .NET 應用程式在匯入 Excel 資料時如何受益於這種平台獨立性。 Entity Framework 整合簡化了 C# Excel 導入場景的資料庫工作流程: var products = sheet.Rows.Skip(1) .Select(row => new Product { Name = row.Columns[0].StringValue, Price = row.Columns[1].DecimalValue }) .ToList(); using (var context = new AppDbContext()) { context.Products.AddRange(products); await context.SaveChangesAsync(); } var products = sheet.Rows.Skip(1) .Select(row => new Product { Name = row.Columns[0].StringValue, Price = row.Columns[1].DecimalValue }) .ToList(); using (var context = new AppDbContext()) { context.Products.AddRange(products); await context.SaveChangesAsync(); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 這種模式能夠以最少的程式碼實現 Excel 到資料庫的直接管道,非常適合資料遷移和 ETL 流程。 如需全面的 Excel 處理功能,請下載 IronXL 以簡化您的資料匯入工作流程。 結論 IronXL 將複雜的 Excel 資料導入問題轉換為簡單的 C# 程式碼。 該庫直觀的 API、全面的格式支援和跨平台相容性使其成為需要處理 Excel 文件的生產應用程式的實用選擇。 如何使用 IronXL 在 C# 中輕鬆匯入、讀取和操作 MS Excel 檔案資料:圖 10 - 許可 準備好將 Excel 檔案匯入到您的 C# 專案中了嗎? 立即開始免費試用,探索 IronXL 的完整功能。 如需詳細的實施指導,請造訪完整文件或探索更多針對進階情境的 Excel 教學。 對於生產環境部署,請查看許可選項,找到適合您團隊的方案。 常見問題解答 如何在C#中導入Excel資料? 您可以使用 IronXL 輕鬆地在 C# 中匯入 Excel 數據,而無需在您的系統上安裝 Microsoft Excel。 使用IronXL進行Excel文件操作有哪些好處? IronXL 允許開發人員使用 C# 讀取、寫入和操作 Excel 文件,而無需複雜的依賴項,並且可以在不同的平台上運行。 我需要安裝 Microsoft Office 才能使用 IronXL 嗎? 不,IronXL 無需安裝 Microsoft Office,即可直接在 C# 應用程式中處理 Excel 檔案。 IronXL 能否同時處理 XLSX 與 CSV 檔案格式? 是的,IronXL 支援多種 Excel 檔案格式,包括 XLSX 和 CSV,使其能夠靈活滿足不同的資料處理需求。 IronXL 是否適合處理大型 Excel 檔案? 是的,IronXL 的設計宗旨就是高效處理大型 Excel 文件,使開發人員能夠處理龐大的資料集而不會出現效能問題。 IronXL 支援哪些平台? IronXL 與多個平台相容,可實現處理 Excel 檔案的應用程式的跨平台開發和部署。 IronXL 如何簡化從 Excel 到資料庫的資料遷移? IronXL 提供了從 Excel 表格讀取和匯出資料的簡單方法,無需複雜的編碼即可更輕鬆地將資料傳輸到資料庫。 我可以使用 IronXL 自動產生 Excel 報表嗎? 是的,IronXL 允許自動產生 Excel 報表,讓您能夠使用 C# 以程式設計方式建立和操作 Excel 檔案。 IronXL 是否既適用於小規模應用也適用於企業級應用? IronXL 功能多樣且可擴展,既適用於小型項目,也適用於需要 Excel 檔案操作的大型企業級應用程式。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 發表日期 12月 19, 2025 如何使用 C# Interop 與 IronXL 在 Excel 中建立資料透視表 在無需 Office 依賴的情況下在 C# 中構建 Excel 樞紐分析表。IronXL 對無需 Excel Interop 的樞紐型報告創建提供了強大的數據操作功能。 閱讀更多 發表日期 12月 18, 2025 使用 IronXL 將 C# DataGridView 匯出到 Excel,並帶有列標題 學習如何在 C# 教程中使用 IronXL library 將 DataGridView 資料匯出為 Excel 同時保留列標題。分步教學。 閱讀更多 發表日期 12月 18, 2025 如何在 C# 中使用 IronXL 創建 Excel 生成報告 使用 IronXL 在 C# 中創建 Excel 報告生成。學習構建擁有格式化公式和數據庫集成的專業報告。 閱讀更多 C# 寫入 CSV:使用 IronXL 改善您的資料匯出流程如何在 C# 中創建 Excel 樞紐...
發表日期 12月 19, 2025 如何使用 C# Interop 與 IronXL 在 Excel 中建立資料透視表 在無需 Office 依賴的情況下在 C# 中構建 Excel 樞紐分析表。IronXL 對無需 Excel Interop 的樞紐型報告創建提供了強大的數據操作功能。 閱讀更多
發表日期 12月 18, 2025 使用 IronXL 將 C# DataGridView 匯出到 Excel,並帶有列標題 學習如何在 C# 教程中使用 IronXL library 將 DataGridView 資料匯出為 Excel 同時保留列標題。分步教學。 閱讀更多
發表日期 12月 18, 2025 如何在 C# 中使用 IronXL 創建 Excel 生成報告 使用 IronXL 在 C# 中創建 Excel 報告生成。學習構建擁有格式化公式和數據庫集成的專業報告。 閱讀更多