Lectura y creación de archivos de Excel en VB .NET (Tutorial de ejemplo de código)
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.
Cómo leer un archivo de Excel en VB.NET
- Descargar la biblioteca C# de Excel para VB.NET
- Crear archivos Excel en VB.NET
- Insertar datos en una hoja de trabajo
- Leer archivo de Excel en VB.NET
- Acceder a los datos desde la hoja de cálculo
- Realizar funciones sobre los datos
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 WorkBookEl 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)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")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")3. Insertar datos en la hoja de cálculo
3.1. Insertar datos en celdas
- 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"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"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"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 SubNota: 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")Aquí está la captura de pantalla de nuestro nuevo archivo de Excel Sample.xlsx:
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 pathEn 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 namePor í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 indexHoja 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 sheetPrimera 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 sheetDespué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 string5.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 cellSe 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 SubEsto mostrará el siguiente resultado:
Y podemos ver una captura de pantalla del archivo de Excel Sample.xlsx:
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()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 SubEste código nos dará esta visualización:
Y este archivo de Excel Sample.xlsx:
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ónPreguntas 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.











