跳至页脚内容
使用 IRONXL

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

IronXL 库功能

在C#中使用IronXL库,可以轻松读取和转换Microsoft Excel文档为CSV文件。 IronXL是一个独立的.NET软件库,可以读取各种电子表格格式,无需安装Microsoft Excel或依赖Microsoft Office Interop Excel。

IronXL是C#中领先的Excel电子表格库之一,兼容.NET Core和.NET Framework。 它支持各种.NET框架,包括Web应用程序、Windows Forms应用程序和控制台应用程序。 使用IronXL读取Excel文件快速且简单。 它支持多种Excel文件格式,包括XLSX、XLS、CSV、TSV、XLST、XLSM等。 您可以导入、编辑、导出数据表、导出数据集,并执行许多其他操作。 也可以导出和保存具有不同扩展名的文件。

通过IronXL直观的C# API,您可以在.NET环境中轻松读取、修改和创建Excel电子表格文件。 它全面支持.NET Core、.NET Framework、Xamarin、移动设备、Linux、macOS和Azure。

IronXL可以像Microsoft Excel一样进行计算,并支持多种列数据格式,如文本、整数、公式、日期、货币和百分比。

要了解更多信息,请点击IronXL网站

在 Visual Studio 中创建新项目

在使用IronXL框架之前,必须在Visual Studio中创建一个.NET项目。 任何版本的Visual Studio都可以工作; 然而,推荐使用最新版本。 您可以根据需要创建各种项目模板或类似Windows Forms的应用程序。 本教程将使用Windows Forms应用程序来简化操作。

如何在C#中将Excel转换为Datagridview,图1:在Visual Studio中创建新项目

在 Visual Studio 中创建新项目

选择项目模板后,提供项目的名称和位置。

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

配置项目

接下来,选择以下结构。 该项目将使用.NET Framework 4.7。

如何在C#中将Excel转换为Datagridview,图3:.NET Framework选择

.NET 框架选择

生成项目文件后,您可以在设计器视图中打开Form1.cs文件以插入程序代码、设计界面,并构建/运行程序。 然后,您需要为解决方案下载所需的IronXL库。 您可以通过在包管理器中使用以下命令下载包:

Install-Package IronXL.Excel

如何在C#中将Excel转换为Datagridview,图4:在包管理器控制台中安装IronXL包

在软件包管理器控制台中安装 IronXL 软件包

或者,您可以使用NuGet包管理器搜索和下载"IronXL"包。 NuGet包管理器为管理项目中的依赖项提供了一种便捷方式。

如何在C#中将Excel转换为Datagridview,图5:在NuGet包管理器UI中搜索并安装IronXL包

在 NuGet 包管理器 UI 中搜索并安装 IronXL 包

对于此表单,将DataGridView控件放置在表单上以加载必要的Excel文件到DataGridView控件中。

从Excel文件加载数据

IronXL是一个功能强大的Excel库,允许您仅使用几行代码读取Excel文件。 以下是一个代码示例,展示如何将Excel数据导入到DataGridView

using System;
using System.Windows.Forms;
using IronXL;

namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string importFilePath = string.Empty;

            openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx";
            DialogResult result = openFileDialog1.ShowDialog();

            // Check if the user selected a file
            if (result == DialogResult.OK)
            {
                importFilePath = openFileDialog1.FileName;
            }

            // Proceed if the file path is not empty
            if (!string.IsNullOrEmpty(importFilePath))
            {
                // Load the Excel document
                WorkBook excelDoc = WorkBook.Load(importFilePath);

                // Convert the first sheet to a DataTable
                var dataTable = excelDoc.WorkSheets[0].ToDataTable();

                // Set the DataSource of dataGridView1 to the DataTable
                dataGridView1.DataSource = dataTable;
            }
        }
    }
}
using System;
using System.Windows.Forms;
using IronXL;

namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string importFilePath = string.Empty;

            openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx";
            DialogResult result = openFileDialog1.ShowDialog();

            // Check if the user selected a file
            if (result == DialogResult.OK)
            {
                importFilePath = openFileDialog1.FileName;
            }

            // Proceed if the file path is not empty
            if (!string.IsNullOrEmpty(importFilePath))
            {
                // Load the Excel document
                WorkBook excelDoc = WorkBook.Load(importFilePath);

                // Convert the first sheet to a DataTable
                var dataTable = excelDoc.WorkSheets[0].ToDataTable();

                // Set the DataSource of dataGridView1 to the DataTable
                dataGridView1.DataSource = dataTable;
            }
        }
    }
}
Imports System
Imports System.Windows.Forms
Imports IronXL

Namespace DataTableWindowsForm
	Partial Public Class Form1
		Inherits Form

		Public Sub New()
			InitializeComponent()
		End Sub

		Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
			Dim importFilePath As String = String.Empty

			openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx"
			Dim result As DialogResult = openFileDialog1.ShowDialog()

			' Check if the user selected a file
			If result = System.Windows.Forms.DialogResult.OK Then
				importFilePath = openFileDialog1.FileName
			End If

			' Proceed if the file path is not empty
			If Not String.IsNullOrEmpty(importFilePath) Then
				' Load the Excel document
				Dim excelDoc As WorkBook = WorkBook.Load(importFilePath)

				' Convert the first sheet to a DataTable
				Dim dataTable = excelDoc.WorkSheets(0).ToDataTable()

				' Set the DataSource of dataGridView1 to the DataTable
				dataGridView1.DataSource = dataTable
			End If
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

上面的代码从Excel导入数据。 为了提供更多的背景信息,我们假设正在设计一个带DataGridView控件和按钮的Windows Forms应用程序。 该按钮将打开一个对话框以从特定位置浏览Excel文件。 添加了自定义代码以过滤和显示特定扩展名的有限数量的文件。

如何在C#中将Excel转换为Datagridview,图6:打开对话框选择Excel文件

打开对话框选择Excel文件

然后使用Load方法从Excel文件加载数据。此方法允许从多个源加载数据,如文件名、字节或流。 如果Excel文件受密码保护,您还可以将密码作为参数传递。

一旦将Excel详细信息加载到IronXL对象中,ToDataTable方法用于将Excel表数据转换为DataTable。 Excel文件中的每个表将转换为单独的表。

然后,将所需的表从数据集中加载到DataGridView中。 为此,将DataGridViewDataSource属性设置为从IronXL新创建的DataTable对象。 这一步允许将数据从Excel文件填充到DataGridView中。

如何在C#中将Excel转换为Datagridview,图7:显示来自Excel文件的数据

显示来自Excel文件的数据

此外,您可能需要配置DataGridView以适当显示页眉和第一行数据,具体取决于您的特定要求。

有关使用IronXL的更多教程,请点击此使用指南

结论

IronXL是一种非常流行的Excel工具,不依赖于外部库。 它是一个独立的解决方案,不需要安装Microsoft Excel。 它兼容各种平台。

使用IronXL,您可以以编程方式完成与Microsoft Excel文档相关的广泛操作。 您可以执行排序字符串或数字、修剪和添加数据、查找和替换值、合并和拆分单元格、保存文件等任务。 它还允许您验证电子表格数据并定义单元格数据类型。 此外,IronXL支持读取和写入CSV文件

IronXL可供购买,并提供不同的许可选项。 客户还有选择支付年度会员费以获取更新和产品支持的选项。 额外收费下,IronXL提供无限制的再分发权限。 要获取更详细的定价信息,您可以访问许可页面

常见问题解答

如何在 C# 中不使用 Interop 显示 DataGridView 中的 Excel 数据?

您可以使用 IronXL 来读取 Excel 数据并通过将 Excel 表转换为 DataTable 然后设置为 DataGridView 的数据源来显示它。

在 C# 中使用 IronXL 进行 Excel 操作的好处是什么?

IronXL 提供了一个独立的解决方案进行 Excel 操作,无需 Microsoft Excel 或 Office Interop。它支持多种平台和格式,使其在不同的 C# 应用程序中显得非常灵活。

如何在 Visual Studio 项目中安装 IronXL 以进行 Excel 处理?

通过在包管理器控制台中运行 Install-Package IronXL.Excel 或通过 Visual Studio 中的 NuGet 包管理器 UI 安装 IronXL。

IronXL 是否支持读取和写入不同的 Excel 文件格式?

是的,IronXL 支持读取和写入多种 Excel 文件格式,包括 XLSX、XLS、CSV 和 TSV。

IronXL 可以用于跨平台应用程序吗?

是的,IronXL 兼容 .NET Core、.NET Framework、Xamarin 和其他平台,非常适合于跨平台应用程序。

使用 IronXL 将 Excel 数据转换为 DataTable 的过程是什么?

要使用 IronXL 将 Excel 数据转换为 DataTable,请将 Excel 文件读取到 WorkBook 对象中,访问所需的表,并使用 IronXL 的方法将数据提取到 DataTable。

IronXL 是在 C# 中进行 Excel 数据处理的经济有效的解决方案吗?

IronXL 提供灵活的许可选项,包括年度会员和再分发权限,使其成为在 C# 中进行 Excel 数据处理的经济有效的解决方案。

IronXL 可以对 Excel 文件执行哪些操作?

IronXL 能够执行多种操作,比如读取、写入、排序、修整和合并单元格,还可以处理类似于 Microsoft Excel 的计算和格式化操作。

IronXL 如何处理用户界面的 Excel 数据?

IronXL 可以从各种来源加载 Excel 数据,并将其转换为 DataTable,以促进无缝集成到如 Windows 窗体应用程序的 DataGridView 等用户界面。

在哪里可以找到有关使用 IronXL 进行 Excel 操作的更多资源?

在 IronXL 网站上可以找到更多关于如何使用 IronXL 的教程和资源,包括指南和详细的文档。

Curtis Chau
技术作家

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

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