IronXL 操作指南 導入及導出為 DataSet 如何在 C# 中匯入和匯出 DataSet/DataTable; Curtis Chau 更新:2026年1月10日 下載 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 IronXL 使用單一方法呼叫在 Excel 工作簿和 DataSets 之間進行轉換 - 使用 LoadWorkSheetsFromDataSet() 將 DataSets 匯入工作簿,並使用 ToDataSet() 將工作簿匯出為 DataSets,並自動進行工作表到表格的映射。 DataSet 是包含多個相關資料表、關係和約束的記憶體內資料表示。 用於處理資料庫、XML 及其他來源的資料。 在 C# 中使用 Excel 檔案時,DataSet 提供了熟悉的 .NET 結構,可與資料驅動的應用程式整合。 DataTable 表示在 DataSet 中具有行和列的單一表格。 IronXL.Excel 會自動將每個 Excel 工作表對應到相對應的 DataTable 中,並在轉換過程中保留列標題和資料類型。 快速入門:立即將工作簿匯出為 System.Data.DataSet 將工作簿轉換為 DataSet 只需呼叫一個方法。 本範例使用 ToDataSet 匯出您的整個工作簿 - 每張工作表都是 DataTable - 並可選擇識別第一行的標頭。 立即開始使用 NuGet 建立 PDF 檔案: 使用 NuGet 套件管理器安裝 IronXL PM > Install-Package IronXL.Excel 複製並運行這段程式碼。 DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true); 部署到您的生產環境進行測試 立即開始在您的專案中使用 IronXL,免費試用! 免費試用30天 ### 最小工作流程(5 個步驟) 下載用於匯入和匯出為資料集的 C# 庫 Prepare the `DataSet` to import into a spreadsheet object Use the LoadWorkSheetsFromDataSet method to import the `DataSet` into the workbook Use the ToDataSet method to export the workbook as a `DataSet` 檢查轉換結果 開始使用 IronXL 如何將資料集載入工作簿? 使用靜態 LoadWorkSheetsFromDataSet 方法將 DataSet 匯入工作簿。 此方法需要 DataSet 和 Workbook 物件。 首先使用 Create 方法建立工作簿。 將 DataSet 物件和 workbook 物件傳給方法。 :path=/static-assets/excel-content-code-examples/how-to/export-dataset-datatable-load.cs // 此代碼段不可用! ' 此代碼段不可用! $vbLabelText $csharpLabel DataSet 中的每個 DataTable 都會成為單獨的工作表。 表格名稱會變成工作表名稱,以維持資料組織。 對於多個資料來源,請結合建立新的試算表或管理現有的工作表。 以下是一個載入具有多個資料表的 DataSet 的綜合範例: using IronXL; using System.Data; // Create a DataSet with multiple tables DataSet salesData = new DataSet("CompanySales"); // Create and populate a products table DataTable productsTable = new DataTable("Products"); productsTable.Columns.Add("ProductID", typeof(int)); productsTable.Columns.Add("ProductName", typeof(string)); productsTable.Columns.Add("Price", typeof(decimal)); // Add sample data productsTable.Rows.Add(1, "Laptop", 999.99m); productsTable.Rows.Add(2, "Mouse", 19.99m); productsTable.Rows.Add(3, "Keyboard", 49.99m); // Create and populate a sales table DataTable salesTable = new DataTable("Sales"); salesTable.Columns.Add("SaleID", typeof(int)); salesTable.Columns.Add("ProductID", typeof(int)); salesTable.Columns.Add("Quantity", typeof(int)); salesTable.Columns.Add("Date", typeof(DateTime)); // Add sample sales data salesTable.Rows.Add(1, 1, 5, DateTime.Now); salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1)); salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2)); // Add tables to DataSet salesData.Tables.Add(productsTable); salesData.Tables.Add(salesTable); // Create workbook and load DataSet WorkBook workBook = WorkBook.Create(); WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook); // Save the workbook with all imported data workBook.SaveAs("SalesReport.xlsx"); using IronXL; using System.Data; // Create a DataSet with multiple tables DataSet salesData = new DataSet("CompanySales"); // Create and populate a products table DataTable productsTable = new DataTable("Products"); productsTable.Columns.Add("ProductID", typeof(int)); productsTable.Columns.Add("ProductName", typeof(string)); productsTable.Columns.Add("Price", typeof(decimal)); // Add sample data productsTable.Rows.Add(1, "Laptop", 999.99m); productsTable.Rows.Add(2, "Mouse", 19.99m); productsTable.Rows.Add(3, "Keyboard", 49.99m); // Create and populate a sales table DataTable salesTable = new DataTable("Sales"); salesTable.Columns.Add("SaleID", typeof(int)); salesTable.Columns.Add("ProductID", typeof(int)); salesTable.Columns.Add("Quantity", typeof(int)); salesTable.Columns.Add("Date", typeof(DateTime)); // Add sample sales data salesTable.Rows.Add(1, 1, 5, DateTime.Now); salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1)); salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2)); // Add tables to DataSet salesData.Tables.Add(productsTable); salesData.Tables.Add(salesTable); // Create workbook and load DataSet WorkBook workBook = WorkBook.Create(); WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook); // Save the workbook with all imported data workBook.SaveAs("SalesReport.xlsx"); Imports IronXL Imports System.Data ' Create a DataSet with multiple tables Dim salesData As New DataSet("CompanySales") ' Create and populate a products table Dim productsTable As New DataTable("Products") productsTable.Columns.Add("ProductID", GetType(Integer)) productsTable.Columns.Add("ProductName", GetType(String)) productsTable.Columns.Add("Price", GetType(Decimal)) ' Add sample data productsTable.Rows.Add(1, "Laptop", 999.99D) productsTable.Rows.Add(2, "Mouse", 19.99D) productsTable.Rows.Add(3, "Keyboard", 49.99D) ' Create and populate a sales table Dim salesTable As New DataTable("Sales") salesTable.Columns.Add("SaleID", GetType(Integer)) salesTable.Columns.Add("ProductID", GetType(Integer)) salesTable.Columns.Add("Quantity", GetType(Integer)) salesTable.Columns.Add("Date", GetType(DateTime)) ' Add sample sales data salesTable.Rows.Add(1, 1, 5, DateTime.Now) salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1)) salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2)) ' Add tables to DataSet salesData.Tables.Add(productsTable) salesData.Tables.Add(salesTable) ' Create workbook and load DataSet Dim workBook As WorkBook = WorkBook.Create() WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook) ' Save the workbook with all imported data workBook.SaveAs("SalesReport.xlsx") $vbLabelText $csharpLabel 在 從 SQL 資料庫匯出資料或將多個來源的資料整合為 Excel 格式時,此方法非常有效。 請造訪 如何載入現有試算表,瞭解從各種檔案格式匯入試算表的方法。 如何將工作簿匯出為資料集? ToDataSet 方法會將工作簿轉換為 System.Data.DataSet,其中每個工作表都會變成 System.Data.DataTable。 在 Excel 工作簿上呼叫此方法,將其轉換為 DataSet 物件。 useFirstRowAsColumnNames 參數決定是否使用第一行作為列名。 :path=/static-assets/excel-content-code-examples/how-to/export-dataset-datatable-export.cs // 此代碼段不可用! ' 此代碼段不可用! $vbLabelText $csharpLabel IronXL 會自動處理資料類型轉換,並在匯出至 DataSets 時維持試算表結構。 這在 整合 Excel 資料與 SQL 資料庫,或在其他 .NET 應用程式中使用資料時有所幫助。 演示工作簿匯出和 DataSet 處理的進階範例: using IronXL; using System; using System.Data; // Load an existing Excel file WorkBook workBook = WorkBook.Load("FinancialData.xlsx"); // Export to DataSet with column headers from first row DataSet financialDataSet = workBook.ToDataSet(useFirstRowAsColumnNames: true); // Process each DataTable in the DataSet foreach (DataTable table in financialDataSet.Tables) { Console.WriteLine($"Processing table: {table.TableName}"); Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}"); // Iterate through columns foreach (DataColumn column in table.Columns) { Console.WriteLine($" Column: {column.ColumnName} ({column.DataType})"); } // Process first 5 rows as example int rowCount = 0; foreach (DataRow row in table.Rows) { if (rowCount++ >= 5) break; // Access data by column name foreach (DataColumn col in table.Columns) { Console.WriteLine($" {col.ColumnName}: {row[col]}"); } } } // You can also export specific worksheets as DataTables WorkSheet specificSheet = workBook.WorkSheets["Q1Sales"]; DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true); // Use the DataTable with other .NET components // For example, bind to a DataGridView or save to database using IronXL; using System; using System.Data; // Load an existing Excel file WorkBook workBook = WorkBook.Load("FinancialData.xlsx"); // Export to DataSet with column headers from first row DataSet financialDataSet = workBook.ToDataSet(useFirstRowAsColumnNames: true); // Process each DataTable in the DataSet foreach (DataTable table in financialDataSet.Tables) { Console.WriteLine($"Processing table: {table.TableName}"); Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}"); // Iterate through columns foreach (DataColumn column in table.Columns) { Console.WriteLine($" Column: {column.ColumnName} ({column.DataType})"); } // Process first 5 rows as example int rowCount = 0; foreach (DataRow row in table.Rows) { if (rowCount++ >= 5) break; // Access data by column name foreach (DataColumn col in table.Columns) { Console.WriteLine($" {col.ColumnName}: {row[col]}"); } } } // You can also export specific worksheets as DataTables WorkSheet specificSheet = workBook.WorkSheets["Q1Sales"]; DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true); // Use the DataTable with other .NET components // For example, bind to a DataGridView or save to database Imports IronXL Imports System Imports System.Data ' Load an existing Excel file Dim workBook As WorkBook = WorkBook.Load("FinancialData.xlsx") ' Export to DataSet with column headers from first row Dim financialDataSet As DataSet = workBook.ToDataSet(useFirstRowAsColumnNames:=True) ' Process each DataTable in the DataSet For Each table As DataTable In financialDataSet.Tables Console.WriteLine($"Processing table: {table.TableName}") Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}") ' Iterate through columns For Each column As DataColumn In table.Columns Console.WriteLine($" Column: {column.ColumnName} ({column.DataType})") Next ' Process first 5 rows as example Dim rowCount As Integer = 0 For Each row As DataRow In table.Rows If rowCount >= 5 Then Exit For rowCount += 1 ' Access data by column name For Each col As DataColumn In table.Columns Console.WriteLine($" {col.ColumnName}: {row(col)}") Next Next Next ' You can also export specific worksheets as DataTables Dim specificSheet As WorkSheet = workBook.WorkSheets("Q1Sales") Dim q1Data As DataTable = specificSheet.ToDataTable(useFirstRowAsColumnNames:=True) ' Use the DataTable with other .NET components ' For example, bind to a DataGridView or save to database $vbLabelText $csharpLabel 匯出的DataSet集保留了在 Excel 中定義的關係和約束,非常適合處理複雜的 Excel 資料結構,而無需依賴 Excel Interop。 額外的 DataSet/DataTable 功能 IronXL 在使用 DataSet 和 DataTable 時提供進階功能: 處理資料類型 IronXL.Excel 可在 Excel-DataSet 轉換過程中智慧地對應資料類型。 數字單元格會變成適當的數字類型 (int, decimal, double), 日期單元格會變成 DateTime 物件, 文字單元格會變成 strings. 透過 在轉換前設定儲存格資料格式來自訂。 效能最佳化 IronXL 優化大型資料集的記憶體使用量和處理速度。 這個函式庫能有效率地串流資料,而非將所有資料載入記憶體。 適用於處理大量資料的 企業應用程式。 與其他功能整合 DataSet/DataTable 功能與其他 IronXL 功能整合: 在匯出到 DataSet 之前套用 公式和計算。 在轉換前使用 條件格式化來強調資料 結合圖表製作進行視覺化報告 請造訪 如何儲存或匯出試算表,瞭解如何將試算表匯出為各種檔案格式。 常見問題解答 如何在 C# 中將 Excel 工作簿轉換為數據集? 使用 IronXL,您可以使用 ToDataSet() 方法將 Excel 工作簿轉換為 DataSet。只需呼叫 WorkBook.ToDataSet(useFirstRowAsColumnNames:true),即可匯出整個工作簿,其中每個工作表都會成為產生的 DataSet 中的 DataTable。 我可以透過程式將 DataSet 匯入 Excel 工作簿嗎? 是的,IronXL 提供 LoadWorkSheetsFromDataSet() 方法將 DataSet 匯入工作簿。使用 WorkBook.Create() 建立工作簿,然後將 DataSet 和工作簿傳給此靜態方法。每個 DataTable 會成為單獨的工作表。 匯入 Excel 時,DataTable 名稱會發生什麼變化? 使用 IronXL.Excel 的 LoadWorkSheetsFromDataSet() 方法時,每個 DataTable 的名稱都會自動變成 Excel 中的工作表名稱,以維護您的資料組織,並方便識別不同的資料來源。 在 DataSet 轉換過程中,函式庫會保留欄頭嗎? 是的,在 Excel 和 DataSets 之間轉換時,IronXL.Excel 會保留欄頭和資料類型。當使用 ToDataSet() 且 useFirstRowAsColumnNames 設定為 true 時,每個工作表的第一行會被識別為列頭。 在 Excel 和 DataSets 之間轉換時,如何處理多個表格? IronXL.Excel 在轉換為 DataSet 時,會自動將每個 Excel 工作表對應到相應的 DataTable,反之亦然。匯入包含多個表格的 DataSet 時,每個 DataTable 會在工作簿中建立單獨的工作表。 將 Excel 匯出至 DataSet 所需的最少程式碼是什麼? 使用 IronXL.Excel 將 Excel 工作簿匯出至 DataSet 的最小程式碼只有一行:DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames:true);這會轉換您的整個工作簿,並自動進行工作表到表格的映射。 Curtis Chau 立即與工程團隊聊天 技術撰稿人 Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。 準備好開始了嗎? Nuget 下載 1,846,091 | 版本: 2026.2 剛剛發布 免費 NuGet 下載 總下載量:1,846,091 查看許可證