如何在 C# 中匯入和匯出資料集/資料表
IronXL 可以透過單一方法呼叫在 Excel 工作簿和資料集之間進行轉換 - 使用LoadWorkSheetsFromDataSet()將資料集匯入工作簿,使用ToDataSet()將工作簿匯出為資料集,並自動進行工作表到表格的對應。
DataSet是記憶體中資料的表示形式,其中包含多個相關的表、關係和限制。 用於處理來自資料庫、XML 和其他來源的資料。 在 C# 中處理 Excel 檔案時, DataSet提供了一個熟悉的 .NET 結構,可以與資料驅動型應用程式整合。
DataTable表示DataSet中包含行和列的單一表。 IronXL 會自動將每個 Excel 工作表對應到對應的DataTable ,並在轉換過程中保留列標題和資料類型。
快速入門:立即將工作簿匯出為 System.Data.DataSet
將工作簿轉換為DataSet只需要一次方法呼叫。 此範例使用ToDataSet匯出整個工作簿(每個工作表都匯出為DataTable ,並可選擇識別第一行標題。
立即開始使用 NuGet 建立 PDF 檔案:
使用 NuGet 套件管理器安裝 IronXL
複製並運行這段程式碼。
DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true);部署到您的生產環境進行測試
最簡工作流程(5個步驟)
- 下載用於匯入和匯出為資料集的 C# 庫
- Prepare the `DataSet` to import into a spreadsheet object
- Use the
LoadWorkSheetsFromDataSetmethod to import the `DataSet` into the workbook - Use the
ToDataSetmethod 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// 此程式碼片段不可用!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");當從 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// 此程式碼片段不可用!IronXL 在匯出到資料集時會自動處理資料類型轉換並保持電子表格結構。 這有助於將 Excel 資料與 SQL 資料庫集成,或在其他 .NET 應用程式中使用資料。
進階範例示範工作簿匯出和資料集處理:
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 databaseusing 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匯出的DataSet集保留了在 Excel 中定義的關係和約束,非常適合處理複雜的 Excel 資料結構,而無需依賴 Excel Interop。
附加資料集/資料表功能
IronXL 在處理DataSet和DataTable時提供了進階功能:
處理資料類型
IronXL 在 Excel 資料集轉換過程中智慧地對應資料類型。 數值單元格變成對應的數值類型( int 、 decimal 、 double ),日期儲存格變成DateTime對象,文字儲存格變成string 。 您可以在轉換前設定儲存格資料格式,從而自訂此功能。
效能最佳化
IronXL 可針對大型資料集最佳化記憶體使用和處理速度。 該庫有效率地以串流方式處理數據,而不是將所有數據載入到記憶體中。 適用於處理大量資料的企業應用。
與其他功能的集成
資料集/資料表功能與其他 IronXL 功能整合:
請造訪"如何儲存或匯出電子表格"以了解如何將電子表格匯出為各種文件格式。
常見問題解答
如何在 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);這會轉換您的整個工作簿,並自動進行工作表到表格的映射。






