Cómo crear y leer archivos de Excel en VB.NET

Lectura y creación de archivos de Excel en VB .NET (Tutorial de ejemplo de código)

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

Los desarrolladores necesitan un enfoque suave y simple para acceder a archivos de Excel en VB .NET. En este tutorial, usaremos IronXL para leer archivos de Excel en VB.NET y acceder a todos los datos para el uso de nuestro proyecto. Aprenderemos a crear hojas de cálculo en todos los formatos (.xls, .xlsx, .csv y .tsv), así como a establecer estilos de celda e insertar datos utilizando programación de Excel en VB.NET.


Paso 1

1. Biblioteca de Excel para VB.NET

Obtenga la Biblioteca Excel de IronXL para VB.NET utilizando Descarga de DLL o NuGet. IronXL es nuestro Paso 1 para acceder rápidamente a los datos de Excel en nuestros proyectos VB.NET, y es lo que usaremos para este tutorial (gratis para desarrollo).

Install-Package IronXL.Excel

Tutorial de cómo hacerlo

2. Crear archivos de Excel en VB.NET

IronXL proporciona el enfoque más sencillo para crear un archivo de Excel (.xlsx) en un proyecto de VB.NET. Después de esto, podemos insertar datos y también configurar propiedades de celda como estilos de fuente o bordes.

2.1. Crear un archivo de Excel

Primero crearemos un Libro de Trabajo:

' 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

El código anterior es para crear un nuevo archivo de Excel. Por defecto, su extensión es .xlsx.

2.2. Crear archivo XLS

En el caso de que quieras crear un archivo con extensión .xls, puedes usar este código:

' 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. Crear hoja de trabajo

Después de crear el Libro de Trabajo, se puede crear una Hoja de Trabajo de Excel de la siguiente manera:

' 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

El código anterior creará una nueva hoja de trabajo ws1 con el nombre Sheet1 en el libro de trabajo wb.

2.4. Crear varias hojas de trabajo

Cualquier número de Hojas de Trabajo se pueden crear de la misma manera:

' 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. Insertar datos en la hoja de cálculo

3.1. Insertar datos en celdas

  1. Establecer la hoja de trabajo predeterminada.
' Insert a value into a specific cell
worksheet("CellAddress").Value = "MyValue"
' Insert a value into a specific cell
worksheet("CellAddress").Value = "MyValue"
VB .NET

Por ejemplo, los datos en la hoja de trabajo ws1 se pueden insertar de la siguiente manera:

' 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

El código anterior escribirá Hello World en la celda A1 de la hoja de trabajo ws1.

3.2. Insertar datos en el rango

También es posible escribir datos en muchas celdas usando la función de rango de la siguiente manera:

' 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. Ejemplo de creación y edición de hojas de trabajo

Crearemos un nuevo archivo de Excel Sample.xlsx e insertaremos algunos datos en él para mostrar el código que aprendimos anteriormente.

' 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

Nota: Por defecto, el nuevo archivo de Excel se creará en la carpeta bin\Debug del proyecto. Si deseamos crear un nuevo archivo en una ruta personalizada, use:

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

Aquí está la captura de pantalla de nuestro nuevo archivo de Excel Sample.xlsx:

Doc5 1 related to 3.3. Ejemplo de creación y edición de hojas de trabajo

Es claro lo sencillo que puede ser crear archivos de Excel usando IronXL en una aplicación VB.NET.


4. Leer archivo de Excel en VB.NET

IronXL también proporciona un enfoque simple para leer archivos de Excel (.xlsx) en tu proyecto de VB .NET. Para este propósito, simplemente obtenga el documento Excel, cárguelo en su proyecto, lea sus datos y úselos según sus requisitos.

Siga estos pasos:

4.1. Acceder a un archivo de Excel en el proyecto

WorkBook es la clase de IronXL cuyo objeto proporciona acceso completo al archivo de Excel y sus funciones. Por ejemplo, si deseamos acceder al archivo de Excel, simplemente usamos:

' 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

En el código anterior, la función WorkBook.Load() carga sample.xlsx en wb. Cualquier tipo de función se puede realizar en wb accediendo a hojas de trabajo específicas del archivo de Excel.

4.2. Acceder a una hoja de trabajo específica

Para acceder a una hoja específica en Excel, toma la clase WorkSheet, que se puede usar de las siguientes maneras diferentes:

Por nombre de hoja

' 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

Por índice de hojas

' 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

Hoja predeterminada

' 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

Primera hoja

' 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

Después de obtener la hoja de Excel ws, puedes obtener cualquier tipo de dato de la hoja de trabajo correspondiente del archivo de Excel y realizar todas las funciones de Excel.


5. Acceder a los datos desde la hoja de cálculo

Los datos se pueden acceder de la hoja de Excel ws de esta manera:

' 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. Datos de una columna específica

También es posible obtener datos de muchas celdas de una columna específica de la siguiente manera:

' 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

Se mostrarán valores desde las celdas A2 hasta A10. A continuación se presenta un ejemplo de código de la discusión anterior.

' 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

Esto mostrará el siguiente resultado:

Doc3 Input1 related to 5.1. Datos de una columna específica

Y podemos ver una captura de pantalla del archivo de Excel Sample.xlsx:

Doc3 1 related to 5.1. Datos de una columna específica

6. Realizar funciones sobre los datos

Es simple acceder a datos filtrados desde una Hoja de Trabajo de Excel aplicando funciones agregadas como Suma, Mínimo o Máximo de la siguiente manera:

' 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

Puede leer más sobre funciones agregadas de Excel aquí.

' 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

Este código nos dará esta visualización:

Doc3 Output2 related to 6. Realizar funciones sobre los datos

Y este archivo de Excel Sample.xlsx:

Doc3 2 related to 6. Realizar funciones sobre los datos

Puede aprender más sobre cómo leer Excel en el artículo vinculado.


Tutorial de acceso rápido

Referencia de la API de documentación

Acceda a la documentación de referencia de la API de IronXL y a las formas sencillas de trabajar con Excel en su proyecto VB.NET. Encuentre listas de características, funciones, clases y más.

Referencia de la API de documentación
Documentation related to Tutorial de acceso rápido

Preguntas Frecuentes

¿Cómo puedo leer archivos Excel en VB.NET sin usar Interop?

Para leer archivos Excel en VB.NET sin usar Interop, puede usar el método WorkBook.Load de IronXL para cargar el archivo. Una vez cargado, puede acceder a los datos de hojas de trabajo específicas usando la clase WorkSheet.

¿Cuáles son los pasos para crear un archivo Excel en VB.NET?

En VB.NET, para crear un archivo Excel usando IronXL, comience instanciando un nuevo objeto WorkBook. Use el método CreateWorkSheet para agregar hojas y pobalarlas con datos estableciendo los valores de las celdas.

¿Es posible trabajar con diferentes formatos de archivo de Excel en VB.NET?

Sí, al trabajar con IronXL en VB.NET, puede crear y manipular archivos Excel en formatos como .xls, .xlsx, .csv y .tsv.

¿Cómo puedo realizar cálculos en datos de Excel en VB.NET?

IronXL le permite realizar cálculos como Sumar, Min y Max directamente en rangos de celdas. Por ejemplo, use ws('A1:A10').Sum() para calcular la suma de valores en ese rango.

¿Puedo insertar datos en celdas específicas de una hoja de trabajo de Excel usando VB.NET?

Sí, usando IronXL en VB.NET, puede insertar datos en celdas específicas estableciendo la propiedad Value de una celda, como ws1('A1').Value = 'Hello World'.

¿Cómo guardo un libro de Excel en una ruta específica en VB.NET?

Para guardar un libro de Excel en una ruta específica usando IronXL, use el método SaveAs con la ruta de archivo deseada, por ejemplo, wb.SaveAs('E:\IronXL\Sample.xlsx').

¿Cómo puedo descargar la biblioteca de Excel para desarrollo en VB.NET?

Puede descargar la biblioteca Excel de IronXL para VB.NET ejecutando el comando dotnet add package IronXL.Excel a través de NuGet o descargando el DLL desde el sitio web de IronXL.

¿Puedo crear múltiples hojas de trabajo en un solo archivo Excel usando VB.NET?

Sí, usando IronXL en VB.NET, puede crear múltiples hojas de trabajo dentro de un solo archivo Excel invocando el método CreateWorkSheet varias veces en un objeto WorkBook.

¿Cómo accedo a una hoja de trabajo específica por nombre o índice en un archivo Excel usando VB.NET?

Con IronXL en VB.NET, puede acceder a una hoja de trabajo por nombre usando wb.GetWorkSheet('SheetName') o por índice con wb.WorkSheets(index).

¿Dónde se guardan por defecto los archivos Excel cuando se crean utilizando IronXL en VB.NET?

Por defecto, los archivos Excel creados con IronXL en VB.NET se guardan en la carpeta 'bin\Debug' del proyecto a menos que se especifique una ruta diferente usando el método SaveAs.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 1,738,553 | Version: 2025.11 recién lanzado