Comment créer et lire des fichiers Excel en VB.NET

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

Questions Fréquemment Posées

Comment puis-je lire des fichiers Excel en VB.NET sans utiliser Interop ?

Pour lire des fichiers Excel en VB.NET sans utiliser Interop, vous pouvez utiliser la méthode WorkBook.Load d'IronXL pour charger le fichier. Une fois chargé, vous pouvez accéder aux données de feuilles de calcul spécifiques à l'aide de la classe WorkSheet.

Quelles sont les étapes pour créer un fichier Excel en VB.NET ?

En VB.NET, pour créer un fichier Excel avec IronXL, commencez par instancier un nouvel objet WorkBook. Utilisez la méthode CreateWorkSheet pour ajouter des feuilles et les remplir de données en définissant les valeurs des cellules.

Est-il possible de travailler avec différents formats de fichiers Excel en VB.NET ?

Oui, en travaillant avec IronXL en VB.NET, vous pouvez créer et manipuler des fichiers Excel dans des formats tels que .xls, .xlsx, .csv et .tsv.

Comment puis-je effectuer des calculs sur les données Excel en VB.NET ?

IronXL vous permet d'effectuer des calculs comme la somme, le minimum et le maximum directement sur des plages de cellules. Par exemple, utilisez ws('A1:A10').Sum() pour calculer la somme des valeurs dans cette plage.

Puis-je insérer des données dans des cellules spécifiques d'une feuille de calcul Excel en VB.NET ?

Oui, en utilisant IronXL en VB.NET, vous pouvez insérer des données dans des cellules spécifiques en définissant la propriété Value d'une cellule, telle que ws1('A1').Value = 'Hello World'.

Comment puis-je enregistrer un classeur Excel à un chemin spécifique en VB.NET ?

Pour enregistrer un classeur Excel à un chemin spécifique en utilisant IronXL, utilisez la méthode SaveAs avec le chemin de fichier souhaité, par exemple wb.SaveAs('E:\IronXL\Sample.xlsx').

Comment puis-je télécharger la bibliothèque Excel pour le développement VB.NET ?

Vous pouvez télécharger la bibliothèque Excel IronXL pour VB.NET en exécutant la commande dotnet add package IronXL.Excel via NuGet ou en téléchargeant le DLL depuis le site Web IronXL.

Puis-je créer plusieurs feuilles de calcul dans un seul fichier Excel en VB.NET ?

Oui, en utilisant IronXL en VB.NET, vous pouvez créer plusieurs feuilles de calcul dans un seul fichier Excel en invoquant la méthode CreateWorkSheet plusieurs fois sur un objet WorkBook.

Comment puis-je accéder à une feuille de calcul spécifique par nom ou index dans un fichier Excel en VB.NET ?

Avec IronXL en VB.NET, vous pouvez accéder à une feuille de calcul par son nom avec wb.GetWorkSheet('SheetName') ou par index avec wb.WorkSheets(index).

Où les fichiers Excel sont-ils enregistrés par défaut lorsqu'ils sont créés en utilisant IronXL en VB.NET ?

Par défaut, les fichiers Excel créés avec IronXL en VB.NET sont enregistrés dans le dossier 'bin\Debug' du projet, sauf si un chemin différent est spécifié à l'aide de la méthode SaveAs.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 1,686,155 | Version : 2025.11 vient de sortir