如何在VB.NET中创建和读取Excel文件

VB.NET 读取和创建 Excel 文件(代码示例教程)

This article was translated from English: Does it need improvement?
Translated
View the article in English

开发人员需要一种流畅、简单的方法来访问 VB .NET Excel 文件。 在本教程中,我们将使用 IronXL 读取 VB dotnet Excel 文件,并访问所有数据以供项目使用。 我们将学习如何创建各种格式( .xls.xlsx.csv.tsv )的电子表格,以及如何使用 VB.NET Excel 编程设置单元格样式和插入数据。


步骤1

1. 适用于 VB.NET 的 Excel 库

使用DLL 下载NuGet获取 IronXL Excel for VB.NET 库。 IronXL 是我们在 VB.NET 项目中快速访问 Excel 数据的第一步,也是我们将在本教程中使用的工具(开发免费)。

Install-Package IronXL.Excel

操作指南

2. 使用 VB.NET 创建 Excel 文件

IronXL 提供了一种在 VB.NET 项目中创建 Excel ( .xlsx格式) 文件的最简单方法。 之后,我们可以插入数据,还可以设置单元格属性,例如字体样式或边框。

2.1 创建 Excel 文件

我们先来创建一个工作簿:

' Create a new Excel workbook with the default format (.xlsx)
Dim wb As New WorkBook
' Create a new Excel workbook with the default format (.xlsx)
Dim wb As New WorkBook
VB .NET

以上代码用于创建一个新的Excel文件。默认情况下,其扩展名为.xlsx

2.2 创建 XLS 文件

如果您想创建扩展名为.xls文件,可以使用以下代码:

' Create a new Excel workbook with .xls format
Dim wb As New WorkBook(ExcelFileFormat.XLS)
' Create a new Excel workbook with .xls format
Dim wb As New WorkBook(ExcelFileFormat.XLS)
VB .NET

2.3 创建工作表

创建工作簿后,可以按如下方式创建 Excel 工作表:

' Create a new worksheet named "Sheet1" in the workbook
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
' Create a new worksheet named "Sheet1" in the workbook
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
VB .NET

上述代码将在工作簿wb中创建一个名为Sheet1的新工作表ws1

2.4 创建多个工作表

可以用同样的方法创建任意数量的工作表:

' Create additional worksheets
Dim ws2 As WorkSheet = wb.CreateWorkSheet("Sheet2")
Dim ws3 As WorkSheet = wb.CreateWorkSheet("Sheet3")
' Create additional worksheets
Dim ws2 As WorkSheet = wb.CreateWorkSheet("Sheet2")
Dim ws3 As WorkSheet = wb.CreateWorkSheet("Sheet3")
VB .NET

3. 将数据插入工作表

3.1. 将数据插入单元格

现在我们可以轻松地按如下方式将数据插入工作表单元格:

' Insert a value into a specific cell
worksheet("CellAddress").Value = "MyValue"
' Insert a value into a specific cell
worksheet("CellAddress").Value = "MyValue"
VB .NET

例如,可以将工作表ws1中的数据插入如下:

' Insert "Hello World" into cell A1 of the worksheet
ws1("A1").Value = "Hello World"
' Insert "Hello World" into cell A1 of the worksheet
ws1("A1").Value = "Hello World"
VB .NET

上述代码将在工作表ws1A1单元格中写入Hello World

3.2. 将数据插入范围

也可以使用 range 函数将数据写入多个单元格,如下所示:

' Insert "NewValue" into the range from cell A3 to A8
ws1("A3:A8").Value = "NewValue"
' Insert "NewValue" into the range from cell A3 to A8
ws1("A3:A8").Value = "NewValue"
VB .NET

3.3 创建和编辑工作表示例

我们将创建一个新的 Excel 文件Sample.xlsx ,并在其中插入一些数据,以展示我们上面学到的代码。

' Import IronXL namespace for Excel operations
Imports IronXL

' Main subroutine to create and edit Excel
Sub Main()
    ' Create a new workbook in XLSX format
    Dim wb As New WorkBook(ExcelFileFormat.XLSX)
    ' Create a worksheet named "Sheet1"
    Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
    ' Insert data into cells
    ws1("A1").Value = "Hello"
    ws1("A2").Value = "World"
    ' Insert a range of values
    ws1("B1:B8").Value = "RangeValue"
    ' Save the workbook as "Sample.xlsx"
    wb.SaveAs("Sample.xlsx")
End Sub
' Import IronXL namespace for Excel operations
Imports IronXL

' Main subroutine to create and edit Excel
Sub Main()
    ' Create a new workbook in XLSX format
    Dim wb As New WorkBook(ExcelFileFormat.XLSX)
    ' Create a worksheet named "Sheet1"
    Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
    ' Insert data into cells
    ws1("A1").Value = "Hello"
    ws1("A2").Value = "World"
    ' Insert a range of values
    ws1("B1:B8").Value = "RangeValue"
    ' Save the workbook as "Sample.xlsx"
    wb.SaveAs("Sample.xlsx")
End Sub
VB .NET

注意:默认情况下,新的 Excel 文件将在项目的bin\Debug文件夹中创建。 如果要创建自定义路径下的新文件,请使用:

wb.SaveAs(@"E:\IronXL\Sample.xlsx")
wb.SaveAs(@"E:\IronXL\Sample.xlsx")
VB .NET

以下是我们新建的Excel文件Sample.xlsx的屏幕截图:

Doc5 1 related to 3.3 创建和编辑工作表示例

很明显,在 VB.NET 应用程序中使用IronXL创建 Excel 文件是多么简单。


4. 在VB.NET中读取Excel文件

IronXL 还提供了一种简单的方法,可以在 VB .NET 项目中读取 Excel ( .xlsx ) 文件。 为此,只需获取 Excel 文档,将其加载到您的项目中,读取其数据,并根据您的需要使用它即可。

请遵循以下步骤:

4.1. 在项目中访问 Excel 文件

WorkBook是 IronXL 的一个类,其对象提供对 Excel 文件及其功能的完全访问权限。 例如,如果我们想访问 Excel 文件,只需使用:

' Load the Excel file "sample.xlsx" into a workbook
Dim wb As WorkBook = WorkBook.Load("sample.xlsx") 'Excel file path
' Load the Excel file "sample.xlsx" into a workbook
Dim wb As WorkBook = WorkBook.Load("sample.xlsx") 'Excel file path
VB .NET

在上面的代码中, WorkBook.Load()函数将sample.xlsx加载到wb中。 通过访问 Excel 文件的特定工作表,可以对wb执行任何类型的功能。

4.2. 访问特定工作表

要访问 Excel 中的特定工作表,可以使用WorkSheet类,该类可以通过以下几种不同的方式使用:

按图纸名称

' Access worksheet by name
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") 'by sheet name
' Access worksheet by name
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") 'by sheet name
VB .NET

按页索引

' Access worksheet by index
Dim ws As WorkSheet = wb.WorkSheets(0) 'by sheet index
' Access worksheet by index
Dim ws As WorkSheet = wb.WorkSheets(0) 'by sheet index
VB .NET

默认工作表

' Access the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet() 'for the default sheet
' Access the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet() 'for the default sheet
VB .NET

第一页

' Access the first worksheet in the workbook
Dim sheet As WorkSheet = wb.WorkSheets.FirstOrDefault() 'for the first sheet
' Access the first worksheet in the workbook
Dim sheet As WorkSheet = wb.WorkSheets.FirstOrDefault() 'for the first sheet
VB .NET

获取 Excel 表格ws后,您可以从 Excel 文件的相应工作表中获取任何类型的数据,并执行所有 Excel 功能。


5. 从工作表中访问数据

可以通过以下方式从 Excel 表格ws访问数据:

' Retrieve values from specific cells
Dim int_Value As Integer = ws("A2").IntValue 'for integer
Dim str_value As String = ws("A2").ToString() 'for string
' Retrieve values from specific cells
Dim int_Value As Integer = ws("A2").IntValue 'for integer
Dim str_value As String = ws("A2").ToString() 'for string
VB .NET

5.1. 特定列的数据

也可以通过以下方式从特定列的多个单元格中获取数据:

' Loop through cells in a specific range and print their values
For Each cell In ws("A2:A10")
    Console.WriteLine("value is: {0}", cell.Text)
Next cell
' Loop through cells in a specific range and print their values
For Each cell In ws("A2:A10")
    Console.WriteLine("value is: {0}", cell.Text)
Next cell
VB .NET

它将显示单元格A2A10中的值。 下面给出上述讨论的代码示例。

' Example: Load and display values from a column
Imports IronXL

Sub Main()
    ' Load the workbook from file
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    ' Get the first worksheet
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
    ' Loop through cells in range A2:A10
    For Each cell In ws("A2:A10")
        Console.WriteLine("value is: {0}", cell.Text)
    Next
    Console.ReadKey()
End Sub
' Example: Load and display values from a column
Imports IronXL

Sub Main()
    ' Load the workbook from file
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    ' Get the first worksheet
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
    ' Loop through cells in range A2:A10
    For Each cell In ws("A2:A10")
        Console.WriteLine("value is: {0}", cell.Text)
    Next
    Console.ReadKey()
End Sub
VB .NET

这将显示以下输出:

Doc3 Input1 related to 5.1. 特定列的数据

我们可以看到Excel文件Sample.xlsx的屏幕截图:

Doc3 1 related to 5.1. 特定列的数据

6. 对数据执行函数

通过应用 SUM、MIN 或 MAX 等聚合函数,可以轻松地从 Excel 工作表中访问筛选后的数据,方法如下:

' Aggregate functions on a range of data
Dim sum As Decimal = ws("From:To").Sum()
Dim min As Decimal = ws("From:To").Min()
Dim max As Decimal = ws("From:To").Max()
' Aggregate functions on a range of data
Dim sum As Decimal = ws("From:To").Sum()
Dim min As Decimal = ws("From:To").Min()
Dim max As Decimal = ws("From:To").Max()
VB .NET

您可以点击此处阅读更多关于Excel聚合函数的信息

' Example: Apply functions to data
Imports IronXL

Sub Main()
    ' Load the workbook
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    ' Get the first worksheet
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()

    ' Perform aggregate calculations
    Dim sum As Decimal = ws("G2:G10").Sum()
    Dim min As Decimal = ws("G2:G10").Min()
    Dim max As Decimal = ws("G2:G10").Max()

    ' Print the results
    Console.WriteLine("Sum is: {0}", sum)
    Console.WriteLine("Min is: {0}", min)
    Console.WriteLine("Max is: {0}", max)
    Console.ReadKey()
End Sub
' Example: Apply functions to data
Imports IronXL

Sub Main()
    ' Load the workbook
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    ' Get the first worksheet
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()

    ' Perform aggregate calculations
    Dim sum As Decimal = ws("G2:G10").Sum()
    Dim min As Decimal = ws("G2:G10").Min()
    Dim max As Decimal = ws("G2:G10").Max()

    ' Print the results
    Console.WriteLine("Sum is: {0}", sum)
    Console.WriteLine("Min is: {0}", min)
    Console.WriteLine("Max is: {0}", max)
    Console.ReadKey()
End Sub
VB .NET

这段代码会显示如下内容:

Doc3 Output2 related to 6. 对数据执行函数

还有这个 Excel 文件Sample.xlsx

Doc3 2 related to 6. 对数据执行函数

您可以通过链接的文章了解更多关于如何阅读Excel的信息


教程快速访问

文档 API 参考

访问 IronXL 的 API 参考文档,了解如何在 VB.NET 项目中轻松使用 Excel。查找功能、函数、类等列表。

文档 API 参考
Documentation related to 教程快速访问

常见问题解答

如何在VB.NET中读取Excel文件而不使用Interop?

要在VB.NET中读取Excel文件而不使用Interop,可以使用IronXL的WorkBook.Load方法加载文件。加载后,可以使用WorkSheet类从特定工作表中访问数据。

在VB.NET中创建Excel文件的步骤是什么?

在VB.NET中,使用IronXL创建Excel文件时,首先实例化一个新的WorkBook对象。使用CreateWorkSheet方法添加工作表,并通过设置单元格值填充数据。

在VB.NET中是否可以处理不同格式的Excel文件?

是的,在VB.NET中使用IronXL时,可以在.xls、.xlsx、.csv和.tsv等格式中创建和操作Excel文件。

我如何在VB.NET中对Excel数据进行计算?

IronXL允许您直接对单元格范围执行计算,如总和、最小值和最大值。例如,使用ws('A1:A10').Sum()计算该范围内值的总和。

我可以在VB.NET中使用Excel工作表中的特定单元格插入数据吗?

是的,在VB.NET中使用IronXL,您可以通过设置单元格的Value属性来向特定单元格插入数据,例如ws1('A1').Value = 'Hello World'

我如何在VB.NET中将Excel工作簿保存到特定路径?

要使用IronXL将Excel工作簿保存到特定路径,请使用SaveAs方法和所需的文件路径,例如wb.SaveAs('E:\IronXL\Sample.xlsx')

我在哪里可以下载适用于VB.NET开发的Excel库?

您可以通过运行命令dotnet add package IronXL.Excel通过NuGet下载IronXL Excel库,或通过从IronXL网站下载DLL。

我可以在一个Excel文件中创建多个工作表吗?

是的,在VB.NET中使用IronXL,您可以通过在WorkBook对象上多次调用CreateWorkSheet方法,在单个Excel文件中创建多个工作表。

如何在VB.NET中通过名称或索引访问Excel文件中的特定工作表?

在VB.NET中使用IronXL,您可以使用wb.GetWorkSheet('SheetName')按名称访问工作表,或使用wb.WorkSheets(index)按索引访问。

默认情况下,使用IronXL在VB.NET中创建的Excel文件保存在哪里?

默认情况下,使用IronXL在VB.NET中创建的Excel文件将保存在项目的'bin\Debug'文件夹中,除非使用SaveAs方法指定了不同的路径。

Curtis Chau
技术作家

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

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

准备开始了吗?
Nuget 下载 1,802,965 | 版本: 2025.12 刚刚发布