Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Trabajar conArchivos de Excelprogramáticamente puede mejorar significativamente la eficiencia y las capacidades de automatización de sus aplicaciones C#. Ya sea que estés generando informes, procesando datos o creando hojas de cálculo complejas de forma dinámica, dominar la manipulación de archivos de Excel es crucial. En este tutorial, nos centraremos en trabajar con rangos de Excel usando IronXL. Cubriremos cómo escriba a, leerymanipular rangosdentro de un archivo Excel.
Instale la biblioteca IronXL para manejar archivos Excel.
Cargue el libro de trabajo y especifique la hoja de trabajo.
Seleccione el rango de celdas para leer.
IronXLes una biblioteca completa para C# que simplifica el trabajo con archivos Excel, ofreciendo una gama de funciones para la integración y manipulación sin problemas de datos de hojas de cálculo. Sus capacidades incluyenlectura, escribirymodificarArchivos de Excel sin requerir la instalación de Microsoft Excel, lo que permite la compatibilidad multiplataforma.
IronXL facilita la extracción de datos de específicosceldas, gamas, o hojas de trabajo enteras, junto con funcionalidades avanzadas como formato, estilismoyformato condicional. Con soporte para cálculos, fórmulas y análisis estadístico, IronXL capacita a los desarrolladores para manejar operaciones de Excel de manera programática de manera eficiente, convirtiéndolo en una herramienta indispensable para automatizar tareas centradas en datos dentro de aplicaciones C#.
Primero, necesitamos instalar la biblioteca IronXL en nuestra aplicación.
Puede instalar IronXL a través del Administrador de Paquetes NuGet con el siguiente comando:
Install-Package IronXL.Excel
Install-Package IronXL.Excel
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronXL.Excel
El comando anterior instalará IronXL con todas sus dependencias.
Agregue el siguiente espacio de nombres en la parte superior de la clase Program.cs, o donde desee usar los métodos de IronXL.
using IronXL;
using IronXL;
Imports IronXL
El primer paso es cargar el libro de Excel. El siguiente código cargará el libro de Excel en nuestra aplicación.
static void Main(string[] args)
{
var workbook = WorkBook.Load("test_excel.xlsx");
var sheet = workbook.GetWorkSheet("Sheet1");
}
static void Main(string[] args)
{
var workbook = WorkBook.Load("test_excel.xlsx");
var sheet = workbook.GetWorkSheet("Sheet1");
}
Shared Sub Main(ByVal args() As String)
Dim workbook = WorkBook.Load("test_excel.xlsx")
Dim sheet = workbook.GetWorkSheet("Sheet1")
End Sub
La línea del archivo carga un libro de Excel existente desde el archivo llamado "test_excel.xlsx". La segunda línea recupera la hoja de trabajo llamada "Sheet1" del libro cargado.
Utilizaré el siguiente archivo de Excel a lo largo de este tutorial.
Ahora, leamos datos de los rangos de celdas especificados.
var range = sheet["A2:G10"];
foreach (var item in range)
{
Console.WriteLine(item);
}
var range = sheet["A2:G10"];
foreach (var item in range)
{
Console.WriteLine(item);
}
Dim range = sheet("A2:G10")
For Each item In range
Console.WriteLine(item)
Next item
La primera línea selecciona una dirección de rango específica(A2 a G10)en la hoja de trabajo, lo que le permite trabajar con múltiples celdas de Excel simultáneamente. El foreach(var item en rango)el bucle itera sobre cada celda dentro de este rango de celdas, lo que permite un procesamiento de datos eficiente.
Al utilizar Console.WriteLine(artículo); el código imprime el valor de cada celda en la consola, lo que facilita la revisión del contenido del rango. Este enfoque simplifica la gestión de datos y mejora la legibilidad del código.
Seleccionemos un rango específico e implementemos algunas fórmulas de Excel.
var range = sheet["F2:F42"];
Console.WriteLine($"Minimum Age: {range.Min()}");
Console.WriteLine($"Maximum Age: {range.Max()}");
Console.WriteLine($"Average Age: {(int)range.Avg()}");
var range = sheet["F2:F42"];
Console.WriteLine($"Minimum Age: {range.Min()}");
Console.WriteLine($"Maximum Age: {range.Max()}");
Console.WriteLine($"Average Age: {(int)range.Avg()}");
Imports System
Dim range = sheet("F2:F42")
Console.WriteLine($"Minimum Age: {range.Min()}")
Console.WriteLine($"Maximum Age: {range.Max()}")
Console.WriteLine($"Average Age: {CInt(Math.Truncate(range.Avg()))}")
El código var range = sheet
["F2:F42"]; selecciona un rango de celdas que abarca desde F2 hasta F42, facilitando el análisis estadístico de datos de edad. Usando range.Min()y range.Max()calcula eficientemente los valores de edad mínima y máxima dentro del rango especificado, ayudando en conocimientos demográficos.
Además, range.Avg()calcula la edad promedio, ofreciendo métricas estadísticas valiosas para la interpretación de datos. Este enfoque simplifica las tareas de análisis de datos, proporcionando acceso rápido a información estadística esencial para la toma de decisiones informada.
Leamos datos de una sola celda.
var read_from_single_cell = sheet["B2"];
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
var read_from_single_cell = sheet["B2"];
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
Dim read_from_single_cell = sheet("B2")
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}")
El código var read_from_single_cell = sheet["B2"]; recupera el valor almacenado en la celda B2 de la hoja de cálculo. Usando este enfoque, puedes acceder fácilmente a valores específicos de celdas dentro del archivo Excel.
Con Console.WriteLine($"El valor en la celda B2 es: {leer_de_celda_única}");, el código imprime en la consola el valor recuperado de las celdas de referencia, facilitando la verificación de datos y la depuración. Esto simplifica el proceso de recuperar y mostrar valores individuales de celdas de archivos Excel.
Vamos a leer datos de toda una columna utilizando el índice.
// Get Last name Column from Index 2
var columnValues = sheet.GetColumn(2); // 2 is column index
foreach ( var columnValue in columnValues )
{
Console.WriteLine(columnValue);
}
// Get Last name Column from Index 2
var columnValues = sheet.GetColumn(2); // 2 is column index
foreach ( var columnValue in columnValues )
{
Console.WriteLine(columnValue);
}
' Get Last name Column from Index 2
Dim columnValues = sheet.GetColumn(2) ' 2 is column index
For Each columnValue In columnValues
Console.WriteLine(columnValue)
Next columnValue
El código var columnValues = sheet.GetColumn(2); recupera todos los valores de la columna ubicada en el índice 2(Columna B)en la hoja de trabajo. Esto le permite acceder eficientemente a todos los valores dentro de una columna específica de la hoja de Excel.
A través del bucle foreach que itera sobre columnValues, cada valor en la columna se imprime en la consola usando Console.WriteLine.(valorDeColumna);. Este enfoque facilita el procesamiento y la visualización de datos en columnas de archivos de Excel, agilizando las tareas de análisis de datos.
Alternativamente, también podemos leer datos de una columna utilizando un nombre de columna en lugar de un índice. Considere el siguiente ejemplo:
var columnValues = sheet.GetColumn("C");
var columnValues = sheet.GetColumn("C");
Dim columnValues = sheet.GetColumn("C")
De esta manera, podemos especificar varias columnas.
Leamos datos de toda la fila utilizando números de fila.
var rowValues = sheet.GetRow(1);// 1 is row index
foreach (var rowValue in rowValues)
{
Console.Write(rowValue + " ");
}
var rowValues = sheet.GetRow(1);// 1 is row index
foreach (var rowValue in rowValues)
{
Console.Write(rowValue + " ");
}
Dim rowValues = sheet.GetRow(1) ' 1 is row index
For Each rowValue In rowValues
Console.Write(rowValue & " ")
Next rowValue
El código var rowValues = sheet.GetRow
(1); recupera todos los valores de una única fila ubicada en el índice 1(Fila 2)en la hoja de cálculo, lo que permite un acceso eficiente a los datos específicos de la fila. A través del bucle foreach que itera sobre rowValues, cada valor en la fila se imprime en la consola usando Console.Write.(rowValue + " ");.
Este enfoque simplifica la extracción y visualización de datos de filas de archivos Excel, ayudando en tareas de análisis de datos y generación de informes. De esta manera, podemos leer valores de múltiples celdas sin especificar un rango.
Podemos escribir datos tanto en una celda como en un rango. Primero, escribiremos datos en un rango.
var range = sheet["D2:D14"];
range.Value = "Prefer Not to Say"; // Change Gender Value
workbook.Save();
var range = sheet["D2:D14"];
range.Value = "Prefer Not to Say"; // Change Gender Value
workbook.Save();
Dim range = sheet("D2:D14")
range.Value = "Prefer Not to Say" ' Change Gender Value
workbook.Save()
El código var range = sheet
["D2:D14"]; selecciona un rango que abarca desde la celda D2 hasta D14, permitiendo la modificación masiva de datos. Al establecer range.Value en "Prefiero no decirlo", se actualiza de manera eficiente el valor del género para cada celda dentro del rango especificado, minimizando tareas repetitivas.
El siguiente workbook.Save(); El comando garantiza el almacenamiento persistente de estos cambios, manteniendo la consistencia e integridad de los datos. Este enfoque simplifica las actualizaciones por lotes y garantiza la uniformidad en múltiples celdas, mejorando la eficiencia de la gestión de datos.
Ahora, escribamos datos en una celda específica.
sheet["B2"].Value = "John";
workbook.Save();
sheet["B2"].Value = "John";
workbook.Save();
sheet("B2").Value = "John"
workbook.Save()
La hoja de código["B2"].Valor = "John"; asigna directamente el valor "John" a la celda B2 en la hoja de cálculo de Excel, ofreciendo un método conciso y directo para actualizar valores específicos de celdas. Este enfoque simplifica el proceso de modificar el contenido de celdas individuales, mejorando la legibilidad y eficiencia del código.
En conclusión, dominar las operaciones de rango de Excel en C# usando IronXL mejora significativamente la eficiencia y las capacidades de automatización de las aplicaciones, facilitando tareas como el procesamiento de datos, la generación de informes y la creación dinámica de hojas de cálculo.
Con las potentes funciones de IronXL para leer, escribir y manipular archivos Excel, los desarrolladores pueden optimizar los procesos de manejo de datos y aprovechar funcionalidades avanzadas como fórmulas, formato y análisis estadístico. Además, IronXL ofrece un prueba gratuita, garantizando flexibilidad y escalabilidad para diversos requisitos de proyectos.
9 productos API .NET para sus documentos de oficina