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

查克尼特·宾
查克尼特·宾
2020年六月17日
更新 2024年十月20日
分享:
This article was translated from English: Does it need improvement?
Translated
View the article in English

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


步骤 1

1. 适用于 VB.NET 的 Excel 库

获取专用于 VB.NET 的 IronXL Excel 库,使用 DLL 下载NuGet。 IronXL 是我们在 VB.NET 项目中快速访问 Excel 数据的步骤 1,也是我们将在本教程中使用的产品(开发免费)。

Install-Package IronXL.Excel

教程

2. 在VB.NET中创建Excel文件

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

2.1. 创建Excel文件

首先创建一个WorkBook:

Dim wb As New WorkBook
Dim wb As New WorkBook
VB.NET

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

2.2. 创建 XLS 文件

如果您想创建一个.xls扩展名文件,您可以使用此代码。

Dim wb As New WorkBook(ExcelFileFormat.XLS)
Dim wb As New WorkBook(ExcelFileFormat.XLS)
VB.NET

2.3. 创建工作表

在创建WorkBook之后,可以按以下方式创建Excel工作表:

Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
VB.NET

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

2.4. 创建多个工作表

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

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

3.将数据插入工作表

3.1. 将数据插入单元格

现在我们可以轻松地将数据插入到工作表单元格中,如下所示:

 worksheet("CellAddress").Value = "MyValue"
 worksheet("CellAddress").Value = "MyValue"
VB.NET

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

ws1("A1").Value = "Hello World"
ws1("A1").Value = "Hello World"
VB.NET

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

3.2. 将数据插入范围

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

ws1("A3:A8").Value = "NewValue"
ws1("A3:A8").Value = "NewValue"
VB.NET

上述代码将在工作表ws1中从单元格A3A8写入NewValue

3.3. 创建和编辑工作表示例

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

/**
Create and Edit Excel
anchor-create-and-edit-worksheets-example
**/
Imports IronXL
Sub Main()
    Dim wb As New WorkBook(ExcelFileFormat.XLSX)
    Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
    ws1("A1").Value = "Hello"
    ws1("A2").Value = "World"
    ws1("B1:B8").Value = "RangeValue"
    wb.SaveAs("Sample.xlsx")
End Sub
/**
Create and Edit Excel
anchor-create-and-edit-worksheets-example
**/
Imports IronXL
Sub Main()
    Dim wb As New WorkBook(ExcelFileFormat.XLSX)
    Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
    ws1("A1").Value = "Hello"
    ws1("A2").Value = "World"
    ws1("B1:B8").Value = "RangeValue"
    wb.SaveAs("Sample.xlsx")
End Sub
VB.NET

注意: 默认情况下,新Excel文件将在项目的bin>Debug文件夹中创建。如果我们希望在自定义路径中创建新文件,则:

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

这是我们新创建的 Excel 文件 sample.xlsx 的截图:

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

使用IronXL在 VB.NET 应用程序中创建 Excel 文件是如此简单。


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

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

遵循以下步骤:

4.1. 访问项目中的Excel文件

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

WorkBook wb = WorkBook.Load("sample.xlsx") 'Excel file path
WorkBook wb = WorkBook.Load("sample.xlsx") 'Excel file path
VB.NET

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

4.2. 访问特定工作表

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

4.2.1.按纸张名称

Dim ws As WorkSheet = WorkBook.GetWorkSheet("sheet1") 'by sheet name
Dim ws As WorkSheet = WorkBook.GetWorkSheet("sheet1") 'by sheet name
VB.NET

wb 是在上述部分中声明的工作簿。

4.2.2.按纸张索引

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

4.2.3.默认工作表

Dim ws As WorkSheet = workbook.DefaultWorkSheet() 'for the default sheet: 
Dim ws As WorkSheet = workbook.DefaultWorkSheet() 'for the default sheet: 
VB.NET

4.2.4.第一张

Dim sheet As WorkSheet = workbook.WorkSheets.FirstOrDefault() 'for the first sheet:
Dim sheet As WorkSheet = workbook.WorkSheets.FirstOrDefault() 'for the first sheet:
VB.NET

4.2.1.第一页或默认页

Dim sheet As WorkSheet = workbook.WorkSheets.FirstOrDefault() 'for the first or default sheet:
Dim sheet As WorkSheet = workbook.WorkSheets.FirstOrDefault() 'for the first or default sheet:
VB.NET

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


5. 访问工作表中的数据

可以通过以下方式从 ExcelSheet ws 中访问数据:

Dim int_Value As Integer = sheet("A2").IntValue 'for integer
Dim str_value As String = sheet("A2").ToString() 'for string
Dim int_Value As Integer = sheet("A2").IntValue 'for integer
Dim str_value As String = sheet("A2").ToString() 'for string
VB.NET

5.1. 特定列的数据

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

For Each cell In sheet("A2:A10")
    Console.WriteLine("value is: {0}", cell.Text)       
Next cell
For Each cell In sheet("A2:A10")
    Console.WriteLine("value is: {0}", cell.Text)       
Next cell
VB.NET

它将显示从单元格A2A10的值。 上述整个讨论的代码示例如下。

/**
Load and Edit Values
anchor-data-from-specific-column
**/
Imports IronXL
Sub Main()
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
    For Each cell In ws("A2:A10")
        Console.WriteLine("value is: {0}", cell.Text)
    Next
    Console.ReadKey() 
End Sub
/**
Load and Edit Values
anchor-data-from-specific-column
**/
Imports IronXL
Sub Main()
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
    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工作表中访问过滤数据,可以通过以下方式进行:

Dim sum As Decimal = ws("From:To").Sum()
Dim min As Decimal = ws("From:To").Min()
Dim max As Decimal = ws("From:To").Max()
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聚合函数的信息。

/**
Apply Functions to Data
anchor-perform-functions-on-data
**/
Imports IronXL
Sub Main()
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()

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

    Console.WriteLine("Sum is: {0}", sum)
    Console.WriteLine("Min is: {0}", min)
    Console.WriteLine("Max is: {0}", max)
    Console.ReadKey()
End Sub
/**
Apply Functions to Data
anchor-perform-functions-on-data
**/
Imports IronXL
Sub Main()
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()

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

    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 教程快速访问
查克尼特·宾
软件工程师
Chaknith 负责 IronXL 和 IronBarcode 的工作。他在 C# 和 .NET 方面拥有深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的洞察力,有助于提升产品、文档和整体体验。