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 la configuración de estilos de celda y la inserción de datos mediante la programación en Excel con VB.NET.
Cómo leer archivos Excel en VB.NET
- Descargar VB.NET Read Excel C# Library
- 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
Obtenga la librería IronXL Excel para VB.NET usandoDescarga DLL oNuGet. IronXL es nuestro Paso 1 para acceder rápidamente a los datos de Excel en nuestros proyectos VB.NET, y lo que vamos a utilizar para este tutorial(libre para el desarrollo).
Install-Package IronXL.Excel
Tutorial práctico
2. Crear archivos Excel en VB.NET
IronXL ofrece el método más sencillo para crear un archivo Excel(Formato `.xlsx) en un proyecto 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 sirve para crear un nuevo archivo Excel. Por defecto, su extensión es .xlsx
.
2.2. Crear archivo XLS
En el caso de que desee crear un archivo de extensión .xls
, puede utilizar 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á un nuevo WorkSheet ws1
con el nombre sheet1
en el WorkBook 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 de la hoja de cálculo ws1
pueden insertarse como:
ws1("A1").Value = "Hello World"
ws1("A1").Value = "Hello World"
El código anterior escribirá Hola Mundo
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á NuevoValor
de la celda A3
a 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 Excel Sample.xlsx
e insertaremos algunos datos en él para mostrar el código que hemos aprendido 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: Por defecto, el nuevo archivo Excel se creará en la carpeta bin>Debug
del proyecto:
wb.SaveAs(@"E:\IronXL\Muestra.xlsx")
Aquí está la captura de pantalla de nuestro archivo Excel recién creado sample.xlsx
:
Queda claro lo simple que puede ser crear archivos Excel usando IronXL
en una Aplicación VB.NET.
4. Leer archivo Excel en VB.NET
IronXl también proporciona un enfoque sencillo para leer 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, WorkBook.Load()Función
cargar muestra.xlsx
en wb
. Se puede realizar cualquier tipo de función en wb
accediendo a una Hoja de Trabajo 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
, puede obtener cualquier tipo de datos de la correspondiente WorkSheet del archivo de Excel y realizar todas las funciones de Excel.
5. Acceder a los datos de la hoja de trabajo
De esta forma se puede acceder a los datos desde la hoja Excel ws
:
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á los valores de la celda A2
a 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 fichero 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()
Más informaciónFunciones Agregadas 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 Excel Muestra.xlsx
:
Puede obtener más información sobre cómoleer Excel en el artículo enlazado.
Acceso rápido a tutoriales
Documentación Referencia API
Acceda a la referencia API de documentación de IronXL y a las formas sencillas de trabajar con Excel en su proyecto VB.NET. Encuentre listas de características, funciones, clases y mucho más.
Documentación Referencia API