USO DE IRONXL

Cómo gestionar rangos de Excel en C#

Publicado en 29 de septiembre, 2024
Compartir:

Trabajar con Archivos de Excel programá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, leery manipular rangos dentro de un archivo Excel.

Cómo leer rangos de Excel en C

  1. Instale la biblioteca IronXL para manejar archivos Excel.

  2. Cargue el libro de trabajo y especifique la hoja de trabajo.

  3. Seleccione el rango de celdas para leer.

  4. Extraer y leer datos del rango especificado.

¿Qué es IronXL?

IronXL es 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 incluyen lectura, escribiry modificar Archivos 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íficos celdas, gamas, o hojas de trabajo enteras, junto con funcionalidades avanzadas como formato, estilismoy formato 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#.

Comenzando con el rango de celdas de Excel en C

Primero, necesitamos instalar la biblioteca IronXL en nuestra aplicación.

Instale el paquete NuGet de IronXL

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
VB   C#

El comando anterior instalará IronXL con todas sus dependencias.

Cómo gestionar rangos de Excel en C#: Figura 1

Agregar espacio de nombres

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
VB   C#

Cargar libro Excel

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
VB   C#

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.

Cómo gestionar rangos de Excel en C#: Figura 2

Leyendo datos de un rango

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
VB   C#

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.

Usar fórmulas de Excel en rango

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()))}")
VB   C#

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.

Cómo gestionar rangos de Excel en C#: Figura 3

Leyendo datos de una sola celda

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}")
VB   C#

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.

Cómo gestionar rangos de Excel en C#: Figura 4

Leyendo datos de toda la columna

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
VB   C#

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.

Cómo gestionar rangos de Excel en C#: Figura 5

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")
VB   C#

De esta manera, podemos especificar varias columnas.

Leyendo datos de toda la fila

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
VB   C#

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.

Cómo gestionar rangos de Excel en C#: Figura 6

Escribir datos en una celda o 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()
VB   C#

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()
VB   C#

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.

Cómo manejar rangos de Excel en C#: Figura 7 - Rango de Excel en C#

Conclusión

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.

SIGUIENTE >
Cómo trabajar con archivos de Excel en C#

¿Listo para empezar? Versión: 2024.9 acaba de salir

Descarga gratuita de NuGet Descargas totales: 1,013,614 Ver licencias >