跳至页脚内容
使用 IRONXL

如何在 C# 中将 Excel 转换为 DataTable

这个博客演示了如何实现Excel到DataTable的转换。 使用IronXL可以轻松完成此任务,它提供了一种简单而高效的方式来读取和写入C#中的Excel文件。

1. IronXL

IronXL是一个强大且用户友好的C#库,旨在简化对Excel工作表的读取、写入、导出数据和操作。 它为开发人员提供了一种无缝的方式来处理Excel电子表格并在他们的C#项目中自动化任务。

利用IronXL,您可以轻松地导入导出和修改Excel工作簿、工作表和单元格中的数据。 它支持较旧的XLS格式和较新的XLSX格式,使其兼容多种Excel版本。

该库提供了一个简单的API,使开发人员能够对Excel文件执行各种操作,例如创建新工作簿、读取和写入单元格数据、应用格式化、处理公式,甚至提取图表和图像。 IronXL也支持表格、范围和命名范围等复杂数据结构的处理。

2. 先决条件

要使用C#中的IronXL处理Excel文件并将其转换为DataTable,需要具备以下几个先决条件:

  1. 开发环境:确保您在机器上设置了兼容的开发环境,例如Visual Studio或其他C# IDE。
  2. IronXL库:下载并安装IronXL库。 您可以从官方的IronXL网站或通过Visual Studio中的NuGet包管理器获取该库。 在您的C#项目中包含IronXL命名空间以访问其类和方法。
  3. .NET Framework或.NET Core:IronXL支持.NET Framework和.NET Core。 根据项目要求,确保在您的机器上安装了适当的版本。

3. 在C#中创建新项目

要使用IronXL库进行与Excel相关的任务,第一步是在Visual Studio中创建一个.NET项目。 虽然可以使用任何版本的Visual Studio,但建议使用最新版本。

本教程将使用控制台应用项目模板来展示如何使用IronXL工作。

如何在C#中将Excel转换为DataTable,图1:新项目 新项目

一旦选择了项目类型,继续指定项目的名称和位置。 此外,您可以选择项目的首选框架,例如.NET Core 6。

如何在C#中将Excel转换为DataTable,图2:项目配置 项目配置

解决方案生成后,您可以访问Program.cs文件,您可以在其中输入代码并创建/执行应用程序。

如何在C#中将Excel转换为DataTable,图3:Program.cs Program.cs

4. 安装 IronXL

可以通过不同方式下载和安装IronXL库。 这些是:

  • 使用Visual Studio NuGet Packages
  • 使用Visual Studio命令行

4.1 使用Visual Studio NuGet Packages

要在Visual Studio中使用NuGet包管理器安装IronXL库,打开NuGet包管理器并在"浏览"选项卡中搜索IronXL。

找到 IronXL 后,选择它并继续安装。 安装完成后,您可以在项目中使用IronXL库。

下面的屏幕截图显示了如何在Visual Studio中打开NuGet包管理器。

如何在C#中将Excel转换为DataTable,图4:NuGet包管理器 NuGet 软件包管理器

IronXL在搜索结果中:

如何在C#中将Excel转换为DataTable,图5:IronXL IronXL

4.2 使用 Visual Studio 命令行

许多开发者更喜欢使用命令行界面安装软件包。 要使用命令行安装 IronXL,请按照以下步骤操作:

  • 转到工具 > NuGet包管理器 > 包管理器控制台 在Visual Studio中。
  • 在包管理器控制台选项卡中输入以下行:
Install-Package IronXL.Excel

现在包将下载并安装到当前项目,并准备使用。

如何在C#中将Excel转换为DataTable,图6:安装IronXL包 安装 IronXL 软件包

5. 使用IronXL将Excel数据转换为DataTable

导出Excel文件流中的Excel数据到C#中的DataTable可以使用IronXL轻松实现。 本节将讨论如何使用IronXL将Excel工作表数据转换为DataTable

首先,您需要一个示例Excel文件,其中包含您要转换为DataTable的数据。 为了演示,应该创建一个简单的Excel文件。

如何在C#中将Excel转换为DataTable,图7:示例Excel 示例Excel

现在让我们来看一下代码示例:

using IronXL;
using System;
using System.Data;

class Program
{
    static void Main()
    {
        // Load the Excel workbook from a file
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Access the default worksheet in the workbook
        WorkSheet workSheet = workBook.DefaultWorkSheet;

        // Convert the worksheet data to a DataTable
        // Set the parameter to true to consider the first row as column headers
        DataTable dataTable = workSheet.ToDataTable(true);

        // Iterate over each row in the DataTable
        foreach (DataRow row in dataTable.Rows)
        {
            // Print each column in the row
            for (int i = 0; i < dataTable.Columns.Count; i++)
            {
                Console.Write($"{row[i]} \t");
            }
            Console.WriteLine(); // Move to the next line after printing each row
        }
    }
}
using IronXL;
using System;
using System.Data;

class Program
{
    static void Main()
    {
        // Load the Excel workbook from a file
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Access the default worksheet in the workbook
        WorkSheet workSheet = workBook.DefaultWorkSheet;

        // Convert the worksheet data to a DataTable
        // Set the parameter to true to consider the first row as column headers
        DataTable dataTable = workSheet.ToDataTable(true);

        // Iterate over each row in the DataTable
        foreach (DataRow row in dataTable.Rows)
        {
            // Print each column in the row
            for (int i = 0; i < dataTable.Columns.Count; i++)
            {
                Console.Write($"{row[i]} \t");
            }
            Console.WriteLine(); // Move to the next line after printing each row
        }
    }
}
Imports Microsoft.VisualBasic
Imports IronXL
Imports System
Imports System.Data

Friend Class Program
	Shared Sub Main()
		' Load the Excel workbook from a file
		Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

		' Access the default worksheet in the workbook
		Dim workSheet As WorkSheet = workBook.DefaultWorkSheet

		' Convert the worksheet data to a DataTable
		' Set the parameter to true to consider the first row as column headers
		Dim dataTable As DataTable = workSheet.ToDataTable(True)

		' Iterate over each row in the DataTable
		For Each row As DataRow In dataTable.Rows
			' Print each column in the row
			For i As Integer = 0 To dataTable.Columns.Count - 1
				Console.Write($"{row(i)} " & vbTab)
			Next i
			Console.WriteLine() ' Move to the next line after printing each row
		Next row
	End Sub
End Class
$vbLabelText   $csharpLabel

在上面的代码中,使用IronXL提供的WorkBook.Load方法将Excel文件作为WorkBook对象加载,然后访问其第一个工作表数据作为WorkSheet。 要将此WorkSheet转换为DataTable,使用workSheet.ToDataTable方法,将数据转换并存储到一个新的DataTable变量中。

最后,将DataTable数据打印到控制台以便可视化。

如何在C#中将Excel转换为DataTable,图8:导出数据到DataTable输出 导出数据到DataTable输出

6.结论

在C#中使用DataTable为在应用程序中处理Excel数据提供了一种强大而高效的解决方案。 通过利用诸如IronXL之类的库,开发人员可以轻松地将Excel数据转换为DataTable并发挥C#的全部潜力。

本教程探索了IronXL的功能及其与C#的无缝集成。 我们讨论了处理Excel文件的前提条件,例如拥有兼容的开发环境、安装IronXL库以及确保适当的.NET Framework或.NET Core版本。

我们还讲解了在Visual Studio中创建一个新的C#项目并通过NuGet包管理器或Visual Studio命令行安装IronXL的过程。成功将IronXL集成到项目中后,我们演示了如何使用该库易于使用的API将数据导出到DataTable。

通过加载Excel文件、访问所需工作表,并利用IronXL的ToDataTable方法,我们能够提取数据并存储到DataTable中。 最后,我们展示了如何通过在控制台打印其内容来可视化DataTable。

使用IronXL和DataTable在C#中,开发人员可以构建能够无缝与Excel数据交互的强大应用程序,实现高效的数据处理、分析和可视化。 通过本教程获得的知识,您现在可以自信地将Excel工作表整合到您的C#项目中,并利用DataTable提供的广泛功能。 欲了解更多IronXL教程,请访问教程页面

常见问题解答

如何在不使用 Interop 的情况下,将 Excel 转换为 C# 中的 DataTable?

您可以使用 IronXL 将 Excel 数据转换为 C# 中的 DataTable。使用 WorkBook.Load 加载您的 Excel 文件,访问所需的工作表,然后使用 workSheet.ToDataTable 执行转换。

在 C# 项目中设置 IronXL 进行 Excel 操作的步骤是什么?

要在您的 C# 项目中设置 IronXL,确保已安装 Visual Studio,然后使用 NuGet 包管理器搜索并安装 IronXL,或使用命令行 Install-Package IronXL.Excel

IronXL 可以同时用于 .NET Framework 和 .NET Core 吗?

是的,IronXL 兼容 .NET Framework 和 .NET Core,在不同的开发环境中灵活操作 Excel 数据。

IronXL 是否支持 Excel 文件的 XLS 和 XLSX 格式?

IronXL 支持 XLS 和 XLSX 两种格式,使其在处理各种 Excel 文件版本时具有多功能性。

使用 IronXL 进行 C# 中 Excel 数据处理的优势是什么?

IronXL 提供易于使用的 API 用于读取、写入和操作 C# 中的 Excel 文件。它简化了数据导入/导出的过程,并支持高级特性,如格式化和公式处理。

如何解决使用 IronXL 将 Excel 转换为 DataTable 时的常见问题?

确保 IronXL 已正确安装并在项目中引用。检查您的 Excel 文件路径是否正确,并确保文件未被其他进程使用。查阅 IronXL 文档以获取特定的错误信息。

推荐使用哪种开发环境来使用 IronXL?

推荐使用 Visual Studio 来使用 IronXL,因为它提供了强大的开发工具和无缝集成的 C# 项目。

如何在 C# 中可视化从 Excel 文件获得的 DataTable 内容?

在使用 IronXL 将 Excel 数据转换为 DataTable 后,您可以在 C# 中遍历 DataTable 行和列,将内容打印到控制台以进行可视化。

Curtis Chau
技术作家

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

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。