使用IRONXL

如何在VB .NET中将Excel文件导入SQL数据库

雷根·彭
雷根·彭
2024年一月27日
分享:

介绍

SQL 数据库和 Excel 是两种有效的管理和分析工具,每种工具都具有特殊的功能和能力。

Excel

Excel 是微软创建的一款流行的电子表格程序。 该工具在管理不同的数据组织、计算、分析和可视化活动方面具有友好的用户界面和适应性,因此赢得了良好的声誉。 用户可以将数据输入按行和列排列的 Excel 表单单元格中,进行数学运算,制作图表、图形和透视表以汇总和分析数据,或从 Excel 中导入数据。 Excel 是个人、公司和组织广泛使用的工具,可用于财务分析、库存管理、报告和预算编制等多种用途。

SQL

结构化数据通过支持SQL(结构化查询语言)的数据库进行存储、管理和检索。 它们的基础是关系模型,由带有行和列的表格组成。 用户可以使用 SQL 命令和 SQL 数据库(如 MySQL、PostgreSQL、SQL Server 和 SQLite)构建、更改和查询数据库。这些数据库具有强大的数据检索和操作能力、可扩展性和完整性保证。

在本文中,我们将了解 VB.NET 如何在不使用提供程序 Microsoft.ACE.OLEDB.12.0 的情况下将 Excel 文件导入到 SQL Server 数据库表中。

如何使用 VB.NET 将 Excel 文件导入 SQL 数据库

  1. 创建一个新的 Visual Studio 项目。

  2. 安装所需的库。

  3. 现在,我们可以导入 Excel 文件并将其转换为 DataTable 或检索数据。

  4. 连接到 SQL 数据库。

  5. 将导入的数据保存到数据库表中。

  6. 关闭 SQL 连接并处理对象。

什么是 IronXL

一个强大的.NET框架,名为IronXL,被创建用于简化处理用C#、VB.NET、Visual Basic和其他.NET语言编写的Excel文件。 它与 XLS 和 XLSX 文件格式兼容。 该库可使开发人员更轻松、更快速地编写、读取、编辑和生成 Excel 电子表格。 还可提供大量工具和功能。

IronXL 的主要特点和功能包括

  • 数据处理:IronXL.Excel 可以轻松读取、写入和处理 Excel 电子表格中的数据。 可使用二维数组检索单元格,并可进行计算、公式和数据格式设置。
  • Excel 文件的创建和修改:除了生成新的 Excel 文件和更改已有的 Excel 文件外,开发人员还可以添加、删除和管理工作表。 他们还可以使用许多 Excel 组件。
  • IronXL 可用于各种应用场景,并因其跨平台互操作性而兼容多种 .NET 平台,包括 Xamarin、.NET Core 和 .NET Framework。
  • 多功能性和兼容性:它同时支持较早的 XLS 和较新的 XLSX Excel 格式,并与多个 Excel 版本兼容。
  • 支持遗留和现代Excel格式:它可以支持较为现代的基于XML的格式(XLSX,自Excel 2007起),以及较传统的Excel文件格式(XLS,自Excel 97-2003起)。
  • 实用性:通过提供简单明了的 API 以及易于理解的属性和函数,该库使具有不同程度经验的开发人员更容易使用 Excel 相关活动。
  • 数据提取和导出:IronXL.Excel 可方便地从 Excel 文件中提取数据,并将 Excel 数据导出为多种格式,使其与数据库和其他系统的接口变得简单。
  • 文档和支持:IronXL.Excel 提供了丰富的文档、教程和支持,以帮助开发人员使用其库完成 Excel 相关任务。
  • 自动化和高效:通过自动化 Excel 任务,IronXL.Excel 使用户能够提高工作效率,减少手工劳动时间,开发数据驱动的高效应用程序。
  • 集成与定制:通过提供将 Excel 数据导出为各种格式的选择,可以更轻松地创建个性化报告或数据驱动解决方案。 它还能很好地与数据库和其他系统配合使用。

    融资、数据分析、报告、商业智能和软件开发只是使用 IronXL 的众多领域中的一小部分。 它使开发人员能够以编程方式处理 Excel 文件,并生成将 Excel 整合与数据操作相结合的可靠解决方案。 点击这里了解更多信息。

创建一个新的Visual Studio项目

创建 Visual Studio 控制台项目非常简单。 要在 Visual Studio 中创建一个控制台应用程序,请按照以下步骤操作:

  1. 启动 Visual Studio: 打开 Visual Studio(确保你的电脑已安装 Visual Studio)。

开始一个新项目

选择文件,然后选择新建,再选择项目

如何在 VB .NET 中将 Excel 文件导入到 SQL 数据库:图 1 - 控制台应用程序

在 "创建新项目 "框的左侧面板中选择您喜欢的编程语言,如 C#。

接下来,从可用的项目模板列表中,选择“Console App”“Console App (.NET Core)”模板。

通过填写“名称”部分为您的项目命名。

如何在 VB .NET 中将 Excel 文件导入 SQL 数据库:图 2 - 项目配置

选择保存项目的位置。

要开始一个新的控制台应用程序项目,请点击“创建”

如何在 VB .NET 中将 Excel 文件导入 SQL 数据库:图 3 - 创建控制台应用程序

安装IronXL库

要安装 IronXL 库,请按照以下步骤操作:

  1. 通过依次选择工具 > NuGet 包管理器 > 包管理器控制台来打开 NuGet 包管理器控制台。

  2. 使用以下命令安装 IronXL 库:
Install-Package IronXL.Excel

如何在 VB .NET 中将 Excel 文件导入 SQL 数据库:图 4 - 安装 IronXL

另外,您也可以使用 NuGet 软件包管理器安装 IronXL 库。 只需搜索软件包 "IronXL",然后从列表中选择要下载的与 IronXL 相关的 NuGet 软件包即可。

如何在 VB .NET 中将 Excel 文件导入 SQL 数据库:图 5 - IronXL

IronXL 导入并添加到 SQL 数据库中

这些程序可用于使用 IronXL 从 Excel 文件导入数据,然后使用 VB.NET 将其添加到 SQL 数据库中。 本例演示了如何使用 IronXL 读取 Excel 文件并将数据插入 SQL Server 数据库。

Imports IronXL
Imports System.Data
Imports System.Data.SqlClient

Module Program
    Sub Main(args As String())
        Dim excelFilePath As String = "Demo.xlsx"
        Dim connectionString As String = "Data Source=DESKTOP-QBIBUNV;Initial Catalog=Mohammed;Integrated Security=True;Encrypt=False"

        ' Load Excel file using IronXL
        Dim workbook As WorkBook = WorkBook.Load(excelFilePath)
        Dim worksheet As WorkSheet = workbook.DefaultWorkSheet

        ' Set up SQL connection
        Using connection As New SqlConnection(connectionString)
            connection.Open()

            ' Iterate through rows and insert data into SQL database
            For Each row In worksheet.ToDataTable().AsEnumerable().ToList()
                ' Extract cell data
                Dim cellData As List(Of String) = New List(Of String)()

                For Each cell In row.ItemArray
                    cellData.Add(cell)
                Next

                ' Insert data into SQL database
                InsertDataIntoSQL(connection, cellData)
            Next
        End Using
    End Sub

    ' Method to insert data into SQL database
    Private Sub InsertDataIntoSQL(connection As SqlConnection, data As List(Of String))
        ' Define your SQL INSERT query
        Dim sqlQuery As String = "INSERT INTO ExcelData (Name, Age) VALUES (@Value1, @Value2)"

        ' Create a SqlCommand object with parameters
        Using command As New SqlCommand(sqlQuery, connection)
            ' Set parameters (adjust as per your column names and data)
            command.Parameters.AddWithValue("@Value1", data(0))
            command.Parameters.AddWithValue("@Value2", data(1))

            ' Execute the SQL command
            command.ExecuteNonQuery()
        End Using
    End Sub
End Module
Imports IronXL
Imports System.Data
Imports System.Data.SqlClient

Module Program
    Sub Main(args As String())
        Dim excelFilePath As String = "Demo.xlsx"
        Dim connectionString As String = "Data Source=DESKTOP-QBIBUNV;Initial Catalog=Mohammed;Integrated Security=True;Encrypt=False"

        ' Load Excel file using IronXL
        Dim workbook As WorkBook = WorkBook.Load(excelFilePath)
        Dim worksheet As WorkSheet = workbook.DefaultWorkSheet

        ' Set up SQL connection
        Using connection As New SqlConnection(connectionString)
            connection.Open()

            ' Iterate through rows and insert data into SQL database
            For Each row In worksheet.ToDataTable().AsEnumerable().ToList()
                ' Extract cell data
                Dim cellData As List(Of String) = New List(Of String)()

                For Each cell In row.ItemArray
                    cellData.Add(cell)
                Next

                ' Insert data into SQL database
                InsertDataIntoSQL(connection, cellData)
            Next
        End Using
    End Sub

    ' Method to insert data into SQL database
    Private Sub InsertDataIntoSQL(connection As SqlConnection, data As List(Of String))
        ' Define your SQL INSERT query
        Dim sqlQuery As String = "INSERT INTO ExcelData (Name, Age) VALUES (@Value1, @Value2)"

        ' Create a SqlCommand object with parameters
        Using command As New SqlCommand(sqlQuery, connection)
            ' Set parameters (adjust as per your column names and data)
            command.Parameters.AddWithValue("@Value1", data(0))
            command.Parameters.AddWithValue("@Value2", data(1))

            ' Execute the SQL command
            command.ExecuteNonQuery()
        End Using
    End Sub
End Module
VB.NET

通过其 API,IronXL 提供了一种方便的方法用于加载 Excel 文件(WorkBook.Load)并检索其内容,允许通过行和单元格(ExcelRowExcelCell 对象)进行迭代。

程序使用 IronXL.Excel 从 Excel 文件中读取数据,检索每一行的单元格值,并将其存储到适当的数据结构中,以便日后处理。

如何在VB .NET中将Excel文件导入SQL数据库:图6 - Excel文件

接下来,程序使用连接字符串和System.Data.SqlClient命名空间连接到SQL Server数据库。 然后准备 SQL INSERT 查询,将 Excel 数据插入到相应的 SQL 表中。 该程序使用参数化的SQL命令(SqlCommand)将Excel数据插入到SQL数据库中,通过将检索到的单元格值映射到适当的SQL查询参数,并使用command.ExecuteNonQuery()执行INSERT命令。

如何在 VB .NET 中将 Excel 文件导入到 SQL 数据库:图 7 - SQL Server

要了解有关代码的更多信息,请查看这里

结论

IronXL.Excel 库是一个 Excel 对象库,被软件开发、金融、数据分析和报告等多个行业广泛使用。 它是企业和开发人员使用 Excel 最大化其业务的必备工具。 IronXL.Excel 允许创建动态的、以数据为中心的应用程序,可以高效地以编程方式管理 Excel 文件。

总之,在 VB.NET 应用程序中使用 IronXL for .NET 可以实现从 Excel 文件到 SQL 数据库的无缝数据传输,从而提供跨两个平台的数据管理效率和灵活性。 IronXL 提供免费的社区版,但有非商业用途的限制。 付费版本,起价为$749,可以通过订阅或永久授权模式购买,并提供附加功能、支持和完整功能。 请访问IronXL的官方网站,获取全面和最新的许可信息。 有关 Iron Software 产品的更多信息,请访问此链接

雷根·彭
软件工程师
Regan毕业于雷丁大学,拥有电子工程学士学位。在加入Iron Software之前,他的前工作职位要求他专注于单一任务;他在Iron Software最喜欢的是能进行多种工作,无论是增加销售价值、技术支持、产品开发还是营销。他喜欢了解开发人员如何使用Iron Software的库,并利用这些知识不断改进文档和开发产品。
< 前一页
如何在C#中将Excel文件转换为XML
下一步 >
如何在C#中将CSV导入到Datatable