使用 IRONXL 使用IronXL将 Excel 文件导入 DataTable Curtis Chau 已更新: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 ,以便进行进一步的操作。 在 C# 中使用 IronXL 操作 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对其进行编辑? 是的,即使将 Excel 文件导入到数据表中, IronXL也允许您编辑和更新 Excel 文件,从而为修改和保存更改提供无缝的体验。 使用IronXL需要怎样的编程经验? IronXL 的设计宗旨是易于使用,它拥有用户友好的 API,各种经验水平的开发人员都可以使用它,因此初学者和高级用户都可以轻松上手。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已更新2026年3月1日 在.NET C# 中下载 Excel 文件:将数据导出为 XLSX、CSV 等格式 使用 C# 和IronXL在ASP.NET Core中下载 Excel 文件。从 MVC 控制器导出数据到 XLSX、CSV 和 XML 格式,并返回 MemoryStream 和 File() 函数。包含代码示例。 阅读更多 已更新2026年3月1日 如何在Blazor中使用IronXL导出 Excel 文件 学习如何使用IronXL在Blazor Server 应用程序中将数据导出到 Excel。本指南涵盖项目设置、服务设计、条件格式设置、多工作表报表和错误处理,并提供完整的 C# 代码示例。 阅读更多 已更新2026年2月27日 如何在 C# 中读取 Excel 文件而不是使用 StreamReader 了解为什么 StreamReader 无法读取 Excel 文件,以及如何在 C# .NET中使用IronXL从磁盘或内存流加载 XLSX 和 XLS 工作簿。 阅读更多 在 C# 中导入 CSV 文件 | ASP.NET Core教程 | IronXL释放 Excel 对象(C#)| 使用...
已更新2026年3月1日 在.NET C# 中下载 Excel 文件:将数据导出为 XLSX、CSV 等格式 使用 C# 和IronXL在ASP.NET Core中下载 Excel 文件。从 MVC 控制器导出数据到 XLSX、CSV 和 XML 格式,并返回 MemoryStream 和 File() 函数。包含代码示例。 阅读更多
已更新2026年3月1日 如何在Blazor中使用IronXL导出 Excel 文件 学习如何使用IronXL在Blazor Server 应用程序中将数据导出到 Excel。本指南涵盖项目设置、服务设计、条件格式设置、多工作表报表和错误处理,并提供完整的 C# 代码示例。 阅读更多
已更新2026年2月27日 如何在 C# 中读取 Excel 文件而不是使用 StreamReader 了解为什么 StreamReader 无法读取 Excel 文件,以及如何在 C# .NET中使用IronXL从磁盘或内存流加载 XLSX 和 XLS 工作簿。 阅读更多