使用IRONXL

如何在C#中不使用oledb将Excel转换为Datatable

发布 2024年一月4日
分享:

简介

微软Excel 是微软公司开发的一款功能强大的电子表格程序。它是一种广泛使用的数据组织、分析和可视化工具。它是微软 Office 套件的一部分。Excel 具有多种功能,是专业人士、个人、组织和大学都可以使用的多功能工具。

Excel 广泛应用于金融、会计、商业分析、数据分析、研究、教育等各个领域。由于其多功能性和广泛的功能集,Excel 是个人和专业领域安排、评估和展示数据的首选工具。在本文中,我们将在没有 OLEDB 连接的情况下用 C# 将 Excel 转换为可数据化。

如何在不使用 OLEDB 的情况下,在 C&num 中将 Excel 转换为 Datatable

1.创建新的 Visual Studio 项目

2.安装所需的库。

3.将 Excel 文件加载到对象中。

4.使用特定方法将 Excel 表中的数据转换为可数据化的数据

5.并根据需要使用数据表。

IronXL 图书馆

在 .NET 程序中处理 Excel 文件的 Microsoft Interop 替代方案是 IronXL.Microsoft Interop 需要使用 Interop 程序集才能与 Excel 相连接,而 IronXL 则提供了一种更简单、更高效、更强大的方法,可在 .NET 环境中以编程方式操作 Excel 文件。

以下是使用 IronXL 的一些优势:

  • 性能和资源经济性: IronXL 在性能和资源效率方面优于 Microsoft Interop,因为它不依赖于 PC 上安装的 Excel 程序。
  • 可读性和简洁性: IronXL 提供了更简洁的应用程序接口,使 Excel 文件的读写和操作更容易,而不会出现 Microsoft Interop 的缺点。
  • 兼容性和依赖性: IronXL 无需在电脑上安装 Microsoft Excel,从而消除了与不同 Office 或 Excel 版本之间的依赖性和潜在兼容性问题。
  • 平台独立性: Microsoft Interop 与某些 Microsoft Office 版本的联系更为紧密,而 IronXL 则可在更广泛的设置和平台中提供更灵活、更简单的部署。

由于 IronXL 速度更快、更易使用,而且只需安装较少的第三方软件,因此对于需要以编程方式处理 Excel 文件的 .NET 开发人员来说,IronXL 通常是首选。不过,项目的具体情况、已有的基础架构以及用户对每个库的熟悉程度等因素可能会影响他们在 IronXL 和 Microsoft Interop 之间的选择。

在选择这些解决方案时,请始终牢记应用程序的需求。有关 IronXL 库的更多信息,请点击此处 网站.

在 Visual Studio 中创建新项目

要打开 Visual Studio 程序,请点击文件菜单中的文件。选择 "新项目 "后,选择 "窗口表单应用程序"。

如何在不使用 oledb 的情况下在 C# 中将 Excel 转换为 Datatable:图 1

选择文件位置后,在相应的文本区域输入项目名称。接下来,单击 "创建 "按钮并选择必要的 .NET Framework,如下图所示。

如何在 C# 中不使用 oledb 将 Excel 转换为 Datatable:图 2

选择的应用程序将决定 Visual Studio 项目的结构。要添加代码,可以输入 program.cs 文件,然后使用控制台、Windows 或网络应用程序构建或运行应用程序。

如何在 C# 中不使用 oledb 将 Excel 转换为 Datatable:图 3

之后,可以添加库并测试代码。

安装 IronXL 库

安装 IronXL 库,因为下一个补丁需要它。最后,启动 NuGet 包管理器控制台,输入以下命令完成安装:

Install-Package IronXL.Excel

如何在 C# 中不使用 oledb 将 Excel 转换为 Datatable:图 4

或者,也可以使用 NuGet 软件包管理器搜索软件包 "IronXL"。我们可以从这个连接到 IronXL 的所有软件包列表中选择需要下载的 NuGet 软件包。

如何在 C# 中不使用 oledb 将 Excel 转换为 Datatable:图 5

将 Excel 文件转换为数据表

安装软件包后,可使用以下代码读取 Excel 文件并将其转换为数据表。

using IronXL;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// In Export data method pass the file path as parameter
        /// </summary>
        /// <param name="filname"></param>
        private void ExportData(string filname)
        {
            string ImportFilePath = string.Empty;
            openFileDialog1.Filter = "Excel (*.xlsx)
*.xlsx";
            DialogResult Result = openFileDialog1.ShowDialog();
            if (Result == DialogResult.OK)
            {
                ImportFilePath = openFileDialog1.FileName;
            }
            if (ImportFilePath != string.Empty)
            {
                var exceldoc = IronXL.WorkBook.LoadExcel(ImportFilePath);
                var worksheet = exceldoc.WorkSheets [0];
                datatable dt = worksheet.ToDataTable();
                dataGridView1.DataSource = dt;
            }
        }
}
}
using IronXL;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// In Export data method pass the file path as parameter
        /// </summary>
        /// <param name="filname"></param>
        private void ExportData(string filname)
        {
            string ImportFilePath = string.Empty;
            openFileDialog1.Filter = "Excel (*.xlsx)
*.xlsx";
            DialogResult Result = openFileDialog1.ShowDialog();
            if (Result == DialogResult.OK)
            {
                ImportFilePath = openFileDialog1.FileName;
            }
            if (ImportFilePath != string.Empty)
            {
                var exceldoc = IronXL.WorkBook.LoadExcel(ImportFilePath);
                var worksheet = exceldoc.WorkSheets [0];
                datatable dt = worksheet.ToDataTable();
                dataGridView1.DataSource = dt;
            }
        }
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

在上述代码中,我们使用 Windows 表单加载 Excel 文件并将其转换为新的数据集,然后将其加载到 Windows 表单数据网格中。在上述代码中,我们首先使用打开文件对话框控制器从文件系统中加载 xls 文件。

然后,在 IronXL 工作簿和 Loadexcel 文件方法的帮助下,我们将文件名作为参数传递给打开文件对话框控制器。它可以帮助我们将 Excel 文件导入工作簿对象。然后,我们使用索引值或 Excel 工作表名称选择 Excel 工作表。借助可用的 ToDataTable 方法,我们可以轻松地将 Excel 文件数据转换为新的数据表。

将 Excel 文件转换为数据表后,我们将其加载到 Windows 表单中的数据网格控制器中。如下图所示,我们有一个窗体和一个加载 Excel 文件的按钮。

如何在 C# 中不使用 oledb 将 Excel 转换为 Datatable:图 6

当用户单击 "加载 Excel "按钮时,会弹出一个对话框,允许我们加载文件。

如何在 C# 中不使用 oledb 将 Excel 转换为 Datatable:图 7

它将处理文件并将其转换为新的数据表,然后加载到数据网格中。

如何在 C# 中不使用 oledb 将 Excel 转换为 Datatable:图 8

要了解有关 IronXL 数据表的更多信息,请参阅链接 这里.

结论

IronXL 是使用最广泛的 Excel 附加组件之一。它不依赖任何额外的外部库。无需安装 Microsoft Excel,因为它是一个独立的程序。它使用不同的通道来运行。相比之下,Interop 库需要其他库来解析文件以编辑 Word 文档。

IronXL 是一个全面的解决方案,适用于任何使用 Microsoft Excel 文档的编程过程。可进行的操作包括计算、字符串或数字排序、剪枝、添加、查找和替换、合并和取消合并以及文件存储。可以创建和评估电子表格数据,还可以创建新的单元格数据类型。它让处理 Excel 数据和读写文件变得更容易。

IronXL 原价为 $749。作为替代方案,用户只需支付一年的会员费,即可获得软件更新和支持。IronXL 提供防止非法再分发的保护,以换取费用。单击此处体验 IronXL。 免费试用 了解更详细的价格信息。有关 Iron 软件产品的更多信息,请参阅 这里.

< 前一页
无需 Office 的 C# Excel 库(初学者教程)
下一步 >
如何在C#中连接或合并Excel文件组合XLS

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 1,013,614 查看许可证 >