IRONSOFTWAREHOME

如何在C&#35中导入和导出DataTable

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

IronXL通过单次方法调用在Excel工作簿和DataSet,具有自动的表格映射功能。

一个DataSet是包含多个相关表、关系和约束的数据的内存表示。 用于处理数据库、XML 和其他来源的数据。 在处理C#中的Excel文件时,DataSet提供了一种与数据驱动应用程序集成的熟悉的.NET结构。

一个DataSet中的一个具有行和列的单一表。 IronXL会自动将每个Excel工作表映射到相应的DataTable,在转换过程中保持列标题和数据类型。

System.Data.DataSet@@--AH2EG--@@

将工作簿转换为DataSet只需要一个方法调用。 此示例使用DataTable——并可选地识别首行标题。

  1. 1Install IronXL with NuGet Package Manager

    PM > Install-Package IronXL.Excel

  2. 2复制并运行这段代码。

    DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true);
    C#
  3. 3部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronXL
    arrow pointer

如何将DataSet加载到工作簿中?

使用静态DataSet导入工作簿。 此方法需要Workbook对象。 它还通过DataSet接受可选设置。 首先使用Create方法创建工作簿。 将workbook对象传递给该方法。

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);

每个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");

从 SQL 数据库导出数据或将多个来源的数据合并为 Excel 格式时,这种方法非常有效。

请访问 如何加载现有电子表格,了解从各种文件格式导入电子表格的方法。


如何将工作簿导出为DataSet

System.Data.DataTable。 在Excel工作簿上调用此方法,将其转换为DataSet对象。 useFirstRowAsColumnNames参数决定是否使用首行作为列名。

// source file not found: /static-assets/excel-content-code-examples/how-to/export-dataset-datatable-export.cs
C#

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.GetWorkSheet("Q1Sales");
DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true);

// Use the DataTable with other .NET components
// For example, bind to a DataGridView or save to database
C#

导出的DataSet保留在Excel中定义的关系和约束,非常适合处理复杂的Excel数据结构,无需Excel Interop依赖。

额外的 DataSet/DataTable 功能

IronXL提供在处理DataTable时的高级功能:

处理数据类型

IronXL.Excel 可在 Excel-DataSet 转换过程中智能映射数据类型。 数字单元格成为适当的数字类型(String。 在转换之前,通过 设置单元格数据格式进行自定义。

性能优化

IronXL 可优化内存使用和大型数据集的处理速度。 该库能有效地将数据流而不是将所有内容加载到内存中。 适用于处理大量数据的企业应用程序

与其他功能集成

DataSet/DataTable 功能与 IronXL 的其他功能集成:

  • 在导出到DataSet之前应用公式和计算
  • 在转换前使用 条件格式化来突出显示数据
  • 结合图表创建进行可视化报告
  • 使用int支持自定义序列化
  • 通过decimal包括数据验证规则
  • 使用double处理缺失值
  • 通过DateTime管理工作表元数据
  • 使用string保留单元格格式类型

请访问 如何保存或导出电子表格,了解如何将电子表格导出为各种文件格式。

常见问题解答

如何在 C# 中将 Excel 工作簿转换为数据集?

通过 IronXL,您可以使用 ToDataSet() 方法将 Excel 工作簿转换为数据集。只需调用 WorkBook.ToDataSet(useFirstRowAsColumnNames:true),即可导出整个工作簿,其中每个工作表都将成为生成的数据集中的一个数据表。

能否以编程方式将数据集导入 Excel 工作簿?

是的,IronXL 提供了 LoadWorkSheetsFromDataSet() 方法,用于将 DataSet 导入工作簿。使用 WorkBook.Create()创建工作簿,然后将数据集和工作簿传递给此静态方法。每个 DataTable 都将成为一个单独的工作表。

导入 Excel 时,DataTable 名称会发生什么变化?

using IronXL.Excel 的 LoadWorkSheetsFromDataSet() 方法时,每个 DataTable 名称都会自动变成 Excel 中的工作表名称,从而维护您的数据组织,并方便识别不同的数据源。

在数据集转换过程中,库是否保留列头?

是的,IronXL.Excel 和 DataSets 之间转换时会保留列标题和数据类型。当使用 ToDataSet() 并将 useFirstRowAsColumnNames 设为 true 时,每个工作表的第一行都会被识别为列标题。

在 Excel 和 DataSets 之间转换时,如何处理多个表格?

IronXL.Excel 在转换为 DataSet 时会自动将每个 Excel 工作表映射到相应的 DataTable,反之亦然。导入包含多个表格的 DataSet 时,每个 DataTable 都会在工作簿中创建一个单独的工作表。

将 Excel 导出到 DataSet 所需的最少代码是什么?

using IronXL.Excel 将 Excel 工作簿导出为 DataSet 的最小代码只有一行:DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames:true);这将通过自动工作表到表格映射转换整个工作簿。

What performance optimizations does IronXL include for handling large datasets?

IronXL is optimized for high performance, using efficient streaming techniques to manage memory and speed when working with large data volumes, making it suitable for enterprise-level applications.

How does IronXL maintain data structure when converting a workbook to a DataSet?

IronXL maintains the organizational structure by converting each worksheet to a DataTable. The relationships, constraints, column headers, and data types are preserved during conversion, allowing for complex data interactions.

Can I use IronXL to create visual reports using Excel data?

Yes, IronXL supports creating charts and visual reports by integrating its DataSet/DataTable functionality with its chart creation features, allowing for comprehensive data visualization directly from Excel data.

Does IronXL support the integration of custom serialization in DataSet operations?

IronXL allows for custom serialization, which can enhance DataSet and DataTable manipulation according to specific application requirements, providing greater flexibility in handling serialized data.

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

Nuget Downloads 2,237,574版本:2026.9刚刚发布

免费获取

30天试用密钥 即刻获取。

bullet_checked无需信用卡或创建账户
bullet_test在生产环境中测试
且无水印
bullet_calendar30天完全
功能性产品
bullet_support试用期间提供
24/5技术支持
立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronXL.Excel
nuget.org/packages/IronXL.Excel/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索“IronXL”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

  1. 下载并解压IronXL到你的解决方案目录中的~/Libs等位置
  2. 在Visual Studio解决方案资源管理器中,右键单击引用。选择浏览,“IronXL.dll”

许可证从 $999

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户