VB .NET Leer & Crear archivos de Excel (Tutorial de ejemplo de código)
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.
Cómo leer archivos Excel en VB.NET
- Descargar biblioteca de VB.NET para leer Excel en C#
- Crear archivos Excel en VB.NET
- Insertar datos en una hoja de cálculo
- Leer archivo Excel en VB.NET
- Acceder a los datos de la hoja de trabajo
- Realizar funciones sobre los datos
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
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)
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")
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")
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"
Por ejemplo, los datos en la hoja de trabajo ws1
se pueden insertar como:
ws1("A1").Value = "Hello World"
ws1("A1").Value = "Hello World"
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"
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
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
:
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
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
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
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:
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:
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:
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
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
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
Esto mostrará la siguiente salida:
Y podemos ver una captura de pantalla del archivo de Excel Sample.xlsx
:
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()
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
Este código nos dará esta pantalla:
Y este archivo de Excel Sample.xlsx
:
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