VB .NET Leer & Crear archivos de Excel (Tutorial de ejemplo de código)

Chaknith Bin
Chaknith Bin
17 de junio, 2020
Actualizado 20 de octubre, 2024
Compartir:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Los desarrolladores necesitan un método sencillo y sin complicaciones para acceder a los archivos Excel de VB .NET. En este tutorial, usaremos IronXL para leer archivos Excel de VB dotnet 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 celdas e insertar datos usando programación de Excel con VB.NET.


Primer paso

1. Biblioteca Excel para VB.NET

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

Install-Package IronXL.Excel

Tutorial práctico

2. Crear archivos Excel en VB.NET

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

2.1. Crear fichero Excel

Primero vamos a crear un WorkBook:

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

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

2.2. Crear archivo XLS

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

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

2.3. Crear hoja de cálculo

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

Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
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 cálculo

Se puede crear cualquier número de hojas de trabajo de la misma manera:

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

3.1. Insertar datos en celdas

Ahora podemos insertar datos fácilmente en las celdas de la Hoja de Trabajo de la siguiente manera:

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

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

ws1("A1").Value = "Hello World"
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 un rango

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

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

El código anterior escribirá NewValue desde la celda A3 hasta A8 en la hoja de cálculo ws1.

3.3. Ejemplo de creación y edición de hojas de cálculo

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

/**
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

Nota: De forma predeterminada, el nuevo archivo de Excel se creará en la carpeta bin>Debug del proyecto. Si queremos crear un nuevo archivo en una ruta personalizada, entonces:

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

Aquí está la captura de pantalla de nuestro archivo Excel recién creado sample.xlsx:

Doc5 1 related to 3.3. Ejemplo de creación y edición de hojas de cálculo

Está claro lo simple que puede ser crear archivos de Excel utilizando IronXL en una aplicación VB.NET.


4. Leer archivo Excel en VB.NET

IronXL también ofrece un enfoque sencillo para leer archivos de Excel (.xlsx) en su proyecto VB dotnet. Para ello, basta con obtener el documento Excel, cargarlo en el proyecto, leer sus datos y utilizarlo según sus necesidades.

Sigue estos pasos:

4.1. Acceder a un archivo Excel en un proyecto

WorkBook es la clase de IronXL cuyo objeto proporciona acceso completo al archivo Excel y sus funciones. Por ejemplo, si queremos acceder al archivo de Excel, basta con utilizar:

WorkBook wb = WorkBook.Load("sample.xlsx") 'Excel file path
WorkBook wb = 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 la hoja de cálculo específica del archivo Excel.

4.2. Hoja de trabajo específica de acceso

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

4.2.1. Por nombre de hoja

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

wb es el WorkBook declarado en la sección anterior.

4.2.2. Por índice de hojas

 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. Hoja por defecto

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. Primera hoja

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. Primera hoja o hoja por defecto

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

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


5. Acceder a los datos de la hoja de trabajo

Los datos pueden accederse desde la ExcelSheet ws de esta manera:

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

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

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

Mostrará valores desde la celda A2 hasta A10. A continuación se ofrece un ejemplo de código de toda la discusión anterior.

/**
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

Esto mostrará la siguiente salida:

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

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

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

6. Realizar funciones sobre los datos

Es sencillo acceder a datos filtrados desde una hoja de cálculo de Excel aplicando funciones de agregación como Suma, Mín o Máx de la siguiente manera:

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

Puedes leer más sobre las funciones de agregación de Excel aquí.

/**
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

Este código nos dará esta pantalla:

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

Puedes obtener más información sobre cómo leer Excel en el artículo enlazado.


Acceso rápido a tutoriales

Documentación Referencia API

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

Documentación Referencia API
Documentation related to Acceso rápido a tutoriales
Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.