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

VB .NET Read & Create Excel Files (Code Example Tutorial)

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

Developers need a smooth and simple approach to accessing VB .NET Excel files. In this walkthrough, we'll use IronXL to read VB dotnet Excel files and access all data for our project use. We'll learn about creating spreadsheets in all formats (.xls, .xlsx, .csv, and .tsv), as well as setting cell styles and inserting data using VB.NET Excel programming.


Step 1

1. Excel for VB.NET Library

Get the IronXL Excel for VB.NET Library using DLL Download or NuGet. IronXL is our Step 1 to quickly accessing Excel data in our VB.NET projects, and what we'll be using for this tutorial (free for development).

Install-Package IronXL.Excel

How To Tutorial

2. Create Excel Files in VB.NET

IronXL provides the simplest approach to create an Excel (.xlsx format) file in a VB.NET project. After this, we can insert data and also set cell properties like font styles or borders.

2.1. Create Excel File

Let's first create a WorkBook:

' 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

The above code is for creating a new Excel file. By default, its extension is .xlsx.

2.2. Create XLS File

In the case that you want to create an .xls extension file, you can use this code:

' 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. Create Worksheet

After creating the WorkBook, an Excel WorkSheet can be created as follows:

' 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

The above code will create a new WorkSheet ws1 with the name Sheet1 in WorkBook wb.

2.4. Create Multiple Worksheets

Any number of WorkSheets can be created in the same way:

' 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. Insert Data into Worksheet

3.1. Insert Data into Cells

Now we can easily insert data into WorkSheet cells as follows:

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

For example, data in worksheet ws1 can be inserted as:

' 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

The above code will write Hello World in cell A1 of WorkSheet ws1.

3.2. Insert Data into Range

It is also possible to write data into many cells using the range function as follows:

' 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. Create and Edit Worksheets Example

We will create a new Excel file Sample.xlsx and insert some data in it to showcase the code we learned above.

' 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

Note: By default, the new Excel file will be created in the bin\Debug folder of the project. If we want to create a new file in a custom path, use:

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

Here is the screenshot of our newly created Excel file Sample.xlsx:

Doc5 1 related to 3.3. Create and Edit Worksheets Example

It is clear how simple it can be to create Excel files using IronXL in a VB.NET Application.


4. Read Excel File in VB.NET

IronXL also provides a simple approach to read Excel (.xlsx) files in your VB .NET project. For this purpose, simply get the Excel document, load it in your project, read its data, and use it as per your requirements.

Follow these steps:

4.1. Access Excel File in Project

WorkBook is the class of IronXL whose object provides full access to the Excel file and its functions. For example, if we want to access the Excel file, we simply use:

' 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

In the code above, the WorkBook.Load() function loads sample.xlsx into wb. Any type of function can be performed on wb by accessing specific WorkSheets of the Excel file.

4.2. Access Specific WorkSheet

To access a specific sheet in Excel, take the WorkSheet class, which can be used in the following different ways:

By Sheet Name

' 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

By Sheet Index

' 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

Default Sheet

' 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

First Sheet

' 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

After getting the Excel sheet ws, you can get any type of data from the corresponding WorkSheet of the Excel file and perform all Excel functions.


5. Access Data From WorkSheet

Data can be accessed from the ExcelSheet ws in this way:

' 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. Data from Specific Column

It is also possible to get data from many cells of a specific column in the following way:

' 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

It will display values from cells A2 to A10. A code example of the above discussion is given below.

' 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

This will display the following output:

Doc3 Input1 related to 5.1. Data from Specific Column

And we can see a Screenshot of Excel file Sample.xlsx:

Doc3 1 related to 5.1. Data from Specific Column

6. Perform Functions on Data

It is simple to access filtered data from an Excel WorkSheet by applying aggregate functions like Sum, Min, or Max in the following way:

' 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

You can read more about Excel Aggregate Functions here.

' 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

This code will give us this display:

Doc3 Output2 related to 6. Perform Functions on Data

And this Excel file Sample.xlsx:

Doc3 2 related to 6. Perform Functions on Data

You can learn more about how to read Excel in the linked article.


Tutorial Quick Access

Documentation API Reference

Access the documentation API reference of IronXL and the simple ways to work with Excel in your VB.NET project. Find lists of features, functions, classes, and more.

Documentation API Reference
Documentation related to Tutorial Quick Access

常见问题解答

如何在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允许您直接在单元格范围内执行计算,如Sum、Min和Max。例如,使用ws('A1:A10').Sum()计算该范围内值的和。

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

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

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

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

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

您可以通过在NuGet上运行命令dotnet add package IronXL.Excel或从IronXL网站下载DLL来下载适用于VB.NET的IronXL Excel库。

我可以在一个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,686,155 | 版本: 2025.11 刚刚发布