使用 IRONXL 使用IronXL將Excel文件匯入DataTable Jordi Bardia 更新:2026年2月15日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 使用IronXL將 C# Excel 檔案匯入到 DataTable 中 手動解析 Excel 檔案很少是開發人員一天中最令人愉快的事情,這已不是什麼秘密。 我們都經歷過這種情況:與遺留的 OLEDB 連接字串作鬥爭,或者試圖將非結構化的電子表格資料映射到.NET應用程式實際能夠理解的內容。 C# 中的 DataTable 是一個強大的均衡器。 它就像一座完美的橋樑,將這些行和列轉換成熟悉的結構,以便進行 LINQ 查詢、DataGrid 綁定或快速存取 SQL 資料庫。 IronXL讓這個過程變得輕鬆許多。 它不使用複雜的配置,而是使用直覺的 ToDataTable 方法來處理轉換。 無論您是在建立報表工具還是資料移轉腳本,以下是如何輕鬆匯入 Excel 資料的方法。 想跟著一起做嗎? 使用IronXL免費試用版親自體驗這款強大的庫。 How Can You Import an Excel File into a DataTable in C#? 若要將 Excel 檔案匯入 C# 資料表中,請使用 WorkBook.Load 載入工作簿,存取目標工作表,然後呼叫 ToDataTable 方法。 這種方法適用於 XLSX 檔案、XLS 檔案、XLSM 檔案和 CSV 檔案格式。 請務必引用以下命名空間以存取必要的類別。 使用NuGet套件管理器在 Visual Studio 中安裝IronXL ,指令如下: Install-Package IronXl.Excel 然後,使用以下簡潔的程式碼片段來傳輸資料: using IronXL; using System; using System.Data; class Program { static void Main(string[] args) { // Load the Excel file from the specified path string filePath = "sales-data.xlsx"; WorkBook workbook = WorkBook.Load(filePath); // Access the first worksheet in the workbook WorkSheet worksheet = workbook.DefaultWorkSheet; // Convert worksheet to DataTable with first row as column headers DataTable dt = worksheet.ToDataTable(true); // Display the imported data foreach (DataRow row in dt.Rows) { Console.WriteLine(string.Join(" | ", row.ItemArray)); } } } using IronXL; using System; using System.Data; class Program { static void Main(string[] args) { // Load the Excel file from the specified path string filePath = "sales-data.xlsx"; WorkBook workbook = WorkBook.Load(filePath); // Access the first worksheet in the workbook WorkSheet worksheet = workbook.DefaultWorkSheet; // Convert worksheet to DataTable with first row as column headers DataTable dt = worksheet.ToDataTable(true); // Display the imported data foreach (DataRow row in dt.Rows) { Console.WriteLine(string.Join(" | ", row.ItemArray)); } } } $vbLabelText $csharpLabel 輸出 使用IronXL將 Excel 檔案匯入 DataTable:圖 1 - 匯入到 DataTable 的 Excel 文件 WorkBook.Load 方法從字串 filePath 位置讀取 Excel 文件,並建立一個包含所有 Excel 工作表資料的工作簿物件。 ToDataTable(true) 參數表示第一行包含列標題,這些列標題將自動用作資料表的列名。 將Excel檔案資料讀入DataTable的最佳方法是什麼? 有效率地讀取Excel檔案內容需要同時處理標題行和原始資料兩種情況。 IronXL 的 ToDataTable 方法接受一個布林參數,該參數決定第一行是作為列名還是作為資料。 請注意,處理擴充屬性或轉換複雜單元格類型可能需要額外的配置,但預設方法可以穩健地處理大多數情況。 using IronXL; using System.Data; // Load workbook from file path string filePath = @"C:\Data\inventory.xlsx"; WorkBook workbook = WorkBook.Load(filePath); WorkSheet worksheet = workbook.WorkSheets[0]; // First row as headers (true) or as data (false) DataTable dataTableWithHeaders = worksheet.ToDataTable(true); DataTable dataTableWithoutHeaders = worksheet.ToDataTable(false); // Process each row in the DataTable foreach (DataRow row in dataTableWithHeaders.Rows) { for (int i = 0; i < dataTableWithHeaders.Columns.Count; i++) { object value = row[i]; Console.Write($"{value}\t"); } Console.WriteLine(); } using IronXL; using System.Data; // Load workbook from file path string filePath = @"C:\Data\inventory.xlsx"; WorkBook workbook = WorkBook.Load(filePath); WorkSheet worksheet = workbook.WorkSheets[0]; // First row as headers (true) or as data (false) DataTable dataTableWithHeaders = worksheet.ToDataTable(true); DataTable dataTableWithoutHeaders = worksheet.ToDataTable(false); // Process each row in the DataTable foreach (DataRow row in dataTableWithHeaders.Rows) { for (int i = 0; i < dataTableWithHeaders.Columns.Count; i++) { object value = row[i]; Console.Write($"{value}\t"); } Console.WriteLine(); } $vbLabelText $csharpLabel 輸出 使用IronXL將 Excel 檔案匯入 DataTable:圖 2 - 將 Excel 檔案匯入 DataTable 的輸出結果 IronXL 的這種靈活性使其成為處理 Excel 電子表格檔案的理想選擇,無論其結構如何。 與 EPPlus 套件或需要建立新的 OleDbDataAdapter 實例的傳統方法不同, IronXL只需一次方法呼叫即可處理轉換。 此程式庫支援.NET Core、 .NET Framework和跨平台部署,無需安裝 Microsoft Excel。 如何將多個Excel工作表轉換為一個資料集? 當您的 Excel 工作簿包含多個工作表時,轉換為 DataSet 會將每個 Excel 工作表保留為集合中單獨的 DataTable。 這種方法對於報表應用和多表資料處理至關重要。 using IronXL; using System; using System.Data; // Load multi-sheet workbook WorkBook workbook = WorkBook.Load("quarterly-reports.xlsx"); // Convert entire workbook to DataSet (each sheet becomes a DataTable) DataSet dataset = workbook.ToDataSet(); // Iterate through all tables in the DataSet foreach (DataTable table in dataset.Tables) { Console.WriteLine($"Sheet: {table.TableName}"); Console.WriteLine($"Rows: {table.Rows.Count}, Columns: {table.Columns.Count}"); foreach (DataRow row in table.Rows) { Console.WriteLine(string.Join(", ", row.ItemArray)); } } using IronXL; using System; using System.Data; // Load multi-sheet workbook WorkBook workbook = WorkBook.Load("quarterly-reports.xlsx"); // Convert entire workbook to DataSet (each sheet becomes a DataTable) DataSet dataset = workbook.ToDataSet(); // Iterate through all tables in the DataSet foreach (DataTable table in dataset.Tables) { Console.WriteLine($"Sheet: {table.TableName}"); Console.WriteLine($"Rows: {table.Rows.Count}, Columns: {table.Columns.Count}"); foreach (DataRow row in table.Rows) { Console.WriteLine(string.Join(", ", row.ItemArray)); } } $vbLabelText $csharpLabel 輸出 使用IronXL將 Excel 檔案匯入 DataTable:圖 3 - 將多工作表 Excel 檔案匯入 DataSet 的輸出結果 ToDataSet 方法會建立一個新的 DataSet,其中包含每個工作表的 DataTable 物件。 每個表的 TableName 屬性反映了原始 Excel 工作表名稱,以便在處理過程中引用特定資料。 如何將Excel資料匯入資料庫? 常見的工作流程包括讀取 Excel 檔案資料並將其插入資料庫系統。 DataTable 結構與.NET無縫集成,用於資料庫操作。 using IronXL; using System.Data; using System.Data.SqlClient; string filePath = @"C:\imports\customer-data.xlsx"; WorkBook workbook = WorkBook.Load(filePath); WorkSheet worksheet = workbook.DefaultWorkSheet; // Convert Excel data to DataTable DataTable dt = worksheet.ToDataTable(true); // Validate data before database insert if (dt == null || dt.Rows.Count == 0) { Console.WriteLine("No data to import"); return; } // Insert into database using SqlBulkCopy string connectionString = "Server=.;Database=Sales;Trusted_Connection=True;"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection)) { bulkCopy.DestinationTableName = "Customers"; bulkCopy.WriteToServer(dt); } } Console.WriteLine($"Imported {dt.Rows.Count} records successfully"); using IronXL; using System.Data; using System.Data.SqlClient; string filePath = @"C:\imports\customer-data.xlsx"; WorkBook workbook = WorkBook.Load(filePath); WorkSheet worksheet = workbook.DefaultWorkSheet; // Convert Excel data to DataTable DataTable dt = worksheet.ToDataTable(true); // Validate data before database insert if (dt == null || dt.Rows.Count == 0) { Console.WriteLine("No data to import"); return; } // Insert into database using SqlBulkCopy string connectionString = "Server=.;Database=Sales;Trusted_Connection=True;"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection)) { bulkCopy.DestinationTableName = "Customers"; bulkCopy.WriteToServer(dt); } } Console.WriteLine($"Imported {dt.Rows.Count} records successfully"); $vbLabelText $csharpLabel 這段程式碼示範如何載入 Excel 文件,將其轉換為 DataTable,並執行批次資料庫插入操作。 空值檢查可確保在嘗試匯入操作之前資料的完整性。 如何將資料表匯出回 Excel? IronXL支援雙向資料流,可讓您從 DataTable 物件建立 Excel 文件,以用於報表和資料匯出場景。 using IronXL; using System.Data; // Create sample DataTable DataTable dt = new DataTable("Products"); dt.Columns.Add("ProductID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Price", typeof(decimal)); dt.Rows.Add(1, "Widget", 29.99m); dt.Rows.Add(2, "Gadget", 49.99m); // Create new workbook and load DataTable WorkBook workbook = WorkBook.Create(); workbook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } }); // Save as Excel file workbook.SaveAs("exported-products.xlsx"); using IronXL; using System.Data; // Create sample DataTable DataTable dt = new DataTable("Products"); dt.Columns.Add("ProductID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Price", typeof(decimal)); dt.Rows.Add(1, "Widget", 29.99m); dt.Rows.Add(2, "Gadget", 49.99m); // Create new workbook and load DataTable WorkBook workbook = WorkBook.Create(); workbook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } }); // Save as Excel file workbook.SaveAs("exported-products.xlsx"); $vbLabelText $csharpLabel 輸出 使用IronXL將 Excel 檔案匯入 DataTable:圖 4 - 匯出到 Excel 的 DataTable LoadWorkSheetsFromDataSet 方法接受一個包含 DataTable 物件的 DataSet,並建立對應的工作表。 請參閱文檔,以了解有關將資料表匯出到 Excel 的更多資訊。 結論 IronXL將 Excel 到 DataTable 轉換的複雜性轉換為簡單的方法呼叫。 無論是匯入單一 Excel 工作表還是將多工作表工作簿處理成完整的資料集,該庫都能有效率地處理 XLSX 檔案、資料類型轉換和基於流的載入。 DataTable 的靈活性與 IronXL 直覺的 API 相結合,為資料庫整合、報表系統和應用程式資料綁定提供了強大的資料工作流程。 下載IronXL以簡化您的 Excel 資料處理,或購買許可證以進行生產部署。 立即開始在您的項目中使用 IronXL 並免費試用。 第一步: 免費啟動 常見問題解答 如何使用 C# 將 Excel 檔案匯入 DataTable? 您可以使用 IronXL 輕鬆將 Excel 檔案匯入 C# 中的 DataTable。IronXL 提供一個簡單的 API,用於載入 Excel 檔案並將其轉換為 DataTable,以便進行後續處理。 使用 IronXL 在 C# 中操作 Excel 文件有哪些好處? IronXL 提供了一套強大的解決方案,用於在 C# 中操作 Excel 檔案,包括讀取、寫入以及將 Excel 資料轉換為 DataTables 等各種格式。它支援所有主要的 Excel 檔案類型,並具備高效能與易用性。 IronXL 是否兼容 .NET Core? 是的,IronXL 完全相容於 .NET Core,可支援需要處理 Excel 檔案的應用程式進行跨平台開發與部署。 我可以使用 IronXL 讀取不同格式的 Excel 檔案嗎? IronXL 支援讀取多種格式的 Excel 檔案,包括 XLSX、XLS、CSV 和 TSV,提供處理不同類型 Excel 資料的靈活性。 IronXL 是否支援 Excel 檔案的安全功能? 是的,IronXL 支援受密碼保護的 Excel 檔案,讓您能在 C# 應用程式中載入並處理受保護的 Excel 文件。 如何使用 IronXL 將 Excel 檔案轉換為 DataTable? 透過 IronXL,您可以透過載入工作簿、選取工作表,並利用內建方法將工作表資料匯出至 DataTable,將 Excel 檔案轉換為 DataTable。 哪些類型的應用程式能從使用 IronXL 中受益? IronXL 非常適合任何需要處理 Excel 資料的應用程式,例如資料分析工具、報表系統,或任何需要匯入、匯出或修改 Excel 資料的軟體。 將 Excel 檔案匯入 DataTable 後,能否使用 IronXL 進行編輯? 是的,IronXL 允許您在將 Excel 檔案匯入 DataTable 之後,仍可進行編輯與更新,提供流暢的修改與儲存變更體驗。 使用 IronXL 需要具備何種程度的程式設計經驗? IronXL 專為易用性而設計,具備直觀的 API,無論開發者經驗深淺皆可輕鬆上手,無論是初學者或進階使用者都能輕鬆運用。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 更新2026年3月1日 在ASP.NET C#中下載Excel文件:將數據匯出到XLSX,CSV和更多格式 使用C#和IronXL在ASP.NET Core中下載Excel文件。從MVC控制器中匯出數據到XLSX, CSV和XML,附有MemoryStream和File()返回。包括代碼範例。 閱讀更多 更新2026年3月1日 如何在Blazor中使用IronXL匯出Excel文件 學習如何在Blazor伺服器應用程式中使用IronXL将數據匯出到Excel。此指南涵蓋專案設置、服務設計、條件格式化、多表報告和錯誤處理,附有完整的C#代碼範例。 閱讀更多 更新2026年2月27日 如何在C#中而不是使用StreamReader來讀取Excel文件 了解StreamReader為何無法讀取Excel文件,並學習如何使用IronXL加載來自磁盤或內存流的XLSX和XLS工作簿。 閱讀更多 在C#中匯入CSV | ASP.NET Core教程 | IronXL發布Excel物件C# | 使用IronXL...
更新2026年3月1日 在ASP.NET C#中下載Excel文件:將數據匯出到XLSX,CSV和更多格式 使用C#和IronXL在ASP.NET Core中下載Excel文件。從MVC控制器中匯出數據到XLSX, CSV和XML,附有MemoryStream和File()返回。包括代碼範例。 閱讀更多
更新2026年3月1日 如何在Blazor中使用IronXL匯出Excel文件 學習如何在Blazor伺服器應用程式中使用IronXL将數據匯出到Excel。此指南涵蓋專案設置、服務設計、條件格式化、多表報告和錯誤處理,附有完整的C#代碼範例。 閱讀更多
更新2026年2月27日 如何在C#中而不是使用StreamReader來讀取Excel文件 了解StreamReader為何無法讀取Excel文件,並學習如何使用IronXL加載來自磁盤或內存流的XLSX和XLS工作簿。 閱讀更多