使用IRONXL

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

发布 2024年一月4日
分享:

介绍

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

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

如何在 C&num 中将 Excel 转换为可数据化的;无需 OLEDB

  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 提供了更简洁的 API,使 Excel 文件的读取、写入和操作更容易,而不会出现 Microsoft Interop 的弊端。
  • 兼容性和依赖性: IronXL 通过无需在 PC 上安装 Microsoft Excel,消除了与不同 Office 或 Excel 版本之间的依赖性和潜在兼容性问题。
  • 平台独立性: 虽然 Microsoft Interop 与 Microsoft Office 的某些版本联系更为紧密,但 IronXL 可在更广泛的设置和平台中提供更灵活、更简单的部署。

    由于 IronXLL 速度更快、使用更方便、需要安装的第三方软件更少,因此对于需要以编程方式处理 Excel 文件的 .NET 开发人员来说,IronXLL 通常是首选。 然而,项目的具体情况、已有的基础设施以及用户对每个库的熟悉程度等因素都可能影响他们在 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 软件包列表中选择需要下载的 NuGet 软件包。

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

将 Excel 文件转换为数据表

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

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

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

< 前一页
使用 C# 在没有 Microsoft Office 的情况下处理 Excel 文件
下一步 >
如何在C#中连接或合并Excel文件组合XLS

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

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