IronXL 操作指南 作为 DataSet 导入和导出 如何在 C# 中导入和导出数据集/数据表 Curtis Chau 已更新:2026年3月7日 下载 IronXL NuGet 下载 DLL 下载 免费试用 LLM副本 LLM副本 将页面复制为 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工作簿和DataSet之间进行转换——使用ToDataSet()将工作簿导出为DataSet,并自动进行工作表到表的映射。 一个DataSet是一个内存中表示的数据,包含多个相关的表、关系和约束。 用于处理数据库、XML 和其他来源的数据。 在处理C#中的Excel文件时,DataSet提供了一种熟悉的.NET结构,与数据驱动的应用程序集成。 一个DataSet中的行和列。 IronXL自动将每个Excel工作表映射到相应的DataTable,在转换过程中保留列标题和数据类型。 快速入门:瞬间导出工作簿为System.Data.DataSet 将工作簿转换为DataSet只需一个方法调用。 此示例使用DataTable——并带有可选的第一行标题识别。 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronXL.Excel PM > Install-Package IronXL.Excel 复制并运行这段代码。 DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true); 部署到您的生产环境中进行测试 通过免费试用立即在您的项目中开始使用IronXL Free 30 Day Trial 最小工作流程(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` 检查转换结果 如何将数据集加载到工作簿中? 使用静态DataSet导入工作簿。 此方法需要Workbook对象。 首先使用Create方法创建工作簿。 将workbook对象传递给方法。 :path=/static-assets/excel/content-code-examples/how-to/export-dataset-datatable-load.cs using IronXL; using System.Data; // Create dataset DataSet dataSet = new DataSet(); // Create workbook WorkBook workBook = WorkBook.Create(); // Load DataSet to workBook WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook); $vbLabelText $csharpLabel 每个DataSet中成为单独的工作表。 表格名称变为工作表名称,以保持数据的条理性。 对于多个数据源,请将其与创建新电子表格或管理现有工作表相结合。 这是一个加载包含多个表的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"); $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 应用程序中使用数据。 演示工作簿导出和数据集处理的高级示例: 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 $vbLabelText $csharpLabel 导出的DataSet保留在Excel中定义的关系和约束,非常适合处理复杂的Excel数据结构,无需Excel Interop依赖。 额外的 DataSet/DataTable 功能 IronXL在处理DataTable时提供高级功能: 处理数据类型 IronXl.Excel 可在 Excel-DataSet 转换过程中智能映射数据类型。 数值单元格成为适当的数值类型(int, decimal, string。 在转换之前,通过 设置单元格数据格式进行自定义。 性能优化 IronXL 可优化内存使用和大型数据集的处理速度。 该库能有效地将数据流而不是将所有内容加载到内存中。 适用于处理大量数据的企业应用程序。 与其他功能集成 DataSet/DataTable 功能与 IronXL 的其他功能集成: 在导出到DataSet之前应用公式和计算 在转换前使用 条件格式化来突出显示数据 结合图表创建进行可视化报告 请访问 如何保存或导出电子表格,了解如何将电子表格导出为各种文件格式。 常见问题解答 如何在 C# 中将 Excel 工作簿转换为数据集? 通过 IronXL,您可以使用 ToDataSet() 方法将 Excel 工作簿转换为数据集。只需调用 WorkBook.ToDataSet(useFirstRowAsColumnNames:true),即可导出整个工作簿,其中每个工作表都将成为生成的数据集中的一个数据表。 能否以编程方式将数据集导入 Excel 工作簿? 是的,IronXL 提供了 LoadWorkSheetsFromDataSet() 方法,用于将 DataSet 导入工作簿。使用 WorkBook.Create()创建工作簿,然后将数据集和工作簿传递给此静态方法。每个 DataTable 都将成为一个单独的工作表。 导入 Excel 时,DataTable 名称会发生什么变化? 使用 IronXL.Excel 的 LoadWorkSheetsFromDataSet() 方法时,每个 DataTable 名称都会自动变成 Excel 中的工作表名称,从而维护您的数据组织,并方便识别不同的数据源。 在数据集转换过程中,库是否保留列头? 是的,IronXL.Excel 和 DataSets 之间转换时会保留列标题和数据类型。当使用 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 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 准备开始了吗? Nuget 下载 1,913,565 | 版本: 2026.3 刚刚发布 免费试用 免费 NuGet 下载 总下载量:1,913,565 查看许可证 还在滚动吗? 想快速获得证据? PM > Install-Package IronXL.Excel 运行示例 观看您的数据变成电子表格。 免费 NuGet 下载 总下载量:1,913,565 查看许可证