USO DE IRONXL

Cómo Autoajustar Celdas en Excel Usando C#

Chaknith Bin
Chaknith Bin
29 de abril, 2024
Compartir:

Introducción

En el mundo actual, impulsado por los datos, Microsoft Excel sigue siendo una herramienta indispensable tanto para las empresas como para los profesionales. Ya sea para hacer números, crear informes o visualizar datos, la versatilidad de Excel es inigualable. Sin embargo, cuando se trata de manipular archivos Excel mediante programación en C#, los desarrolladores suelen enfrentarse a dificultades. Aquí es donde entra en juego la biblioteca IronXL, ofreciendo una solución perfecta para la automatización de Excel dentro del entorno C#.

La biblioteca IronXL de Iron Software proporciona API intuitivas para manejar documentos Excel de manera fluida en entornos de C# .NET y VB.NET. Con IronXL, no es necesario instalar componentes de Microsoft Office o Excel Interop. Permite a los desarrolladores leer, editar y crear archivos de hojas de cálculo Excel sin esfuerzo, ofreciendo compatibilidad total con varios marcos .NET, incluidos .NET 8, 7, 6, Core Frameworks y entornos Azure.

En este artículo, aprenderemos cómo autoajustar el ancho y alto de las columnas en Excel usando C# y IronXL.

Crea un Proyecto de Visual Studio para Demostrar el Ajuste Automático de Celdas en una hoja de cálculo de Excel.

  1. Instale la biblioteca IronXL en el proyecto.

  2. Ajuste automático del ancho de columna usando la biblioteca IronXL.

  3. Ajustar automáticamente la altura de fila usando la biblioteca IronXL.

  4. Establecer el ancho de la columna y la altura de la fila manualmente utilizando la biblioteca IronXL.

IronXL

La biblioteca IronXL es una biblioteca versátil de .NET diseñada para simplificar la manipulación de hojas de cálculo de Excel para desarrolladores en C#. IronXL, que ofrece una API rápida e intuitiva, permite a los usuarios acceder, modificar y generar archivos de Excel sin esfuerzo y sin depender de Office Interop. Su compatibilidad se extiende a varios marcos .NET, incluidos .NET Core y Azure, sin necesidad de dependencias especiales ni de instalar Microsoft Office. Con soporte para múltiples lenguajes .NET como C#, VB.NET y F#, IronXL se adapta a una amplia gama de escenarios de desarrollo, incluyendo aplicaciones de consola, web y de escritorio. Además, la compatibilidad de IronXL se extiende a través de diferentes plataformas, incluyendo Windows, Linux, macOS, Docker, Azure y AWS, por lo que es una herramienta indispensable para los desarrolladores que buscan una integración eficiente de Excel a través de diversos entornos.

Características principales de la biblioteca IronXL

  1. Fácil Integración: IronXL se integra sin problemas con aplicaciones de C#, proporcionando una API simple e intuitiva para la automatización de Excel. Los desarrolladores pueden empezar a trabajar rápidamente con una curva de aprendizaje mínima.

  2. Leer y escribir archivos de Excel: Con IronXL, puedes leer datos de archivos de Excel existentes y escribir datos en nuevas hojas de cálculo o en hojas de cálculo existentes sin esfuerzo. Esta capacidad es esencial para tareas como la importación/exportación de datos y la generación de informes.

  3. Formato y Estilo: IronXL le permite aplicar formato y estilo a las celdas de Excel, incluyendo fuentes, colores, bordes y más. Esto garantiza que los archivos Excel generados mantengan un aspecto profesional y pulido.

  4. Soporte de fórmulas: ¿Necesita realizar cálculos complejos o aplicar fórmulas a los datos de Excel? IronXL le ofrece soporte para fórmulas de Excel, lo que le permite automatizar los cálculos y la manipulación de datos.

  5. Ajuste automático de celdas: Una de las funciones útiles que ofrece IronXL es la capacidad de ajustar automáticamente las celdas en Excel, asegurando que el contenido se ajuste ordenadamente dentro de cada celda sin ser truncado.

Paso 1: Crear un Proyecto Visual Studio para Demo Autoajustar Celdas en hoja de cálculo Excel.

Para empezar, vamos a crear un proyecto de Visual Studio como se muestra a continuación. Seleccione de la lista la plantilla de aplicación Consola

Cómo ajustar automáticamente el tamaño de las celdas en Excel usando C#: Figura 1 - Abra Visual Studio y agregue un nuevo proyecto de tipo Aplicación de Consola en C#.

Indique el nombre y la ubicación del proyecto

Cómo ajustar automáticamente las celdas en Excel usando C#: Figura 2 - Luego, especifique el nombre del Proyecto y la Ubicación.

Seleccione la versión .NET necesaria en el menú desplegable y haga clic en crear

Cómo ajustar automáticamente las celdas en Excel usando C#: Figura 3 - Luego, seleccione la versión requerida de .NET Framework y haga clic en Crear.

Paso 2: Instale la librería IronXL en el proyecto.

Instale la biblioteca IronXL desde el Administrador de Paquetes NuGet de Visual Studio

Cómo ajustar automáticamente el tamaño de las celdas en Excel usando C#: Figura 4 - Instalar IronXL usando el Administrador de paquetes NuGet para la solución buscando IronXL en la barra de búsqueda del Administrador de paquetes NuGet, luego seleccione el proyecto y haga clic en el botón Instalar.

El paquete también puede instalarse utilizando la línea de comandos de NuGet

dotnet add package IronXL.Excel --version 2024.3.20
// or
Install-Package IronXL.Excel
dotnet add package IronXL.Excel --version 2024.3.20
// or
Install-Package IronXL.Excel
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronXL.Excel --version 2024.3.20 Install-Package IronXL.Excel
$vbLabelText   $csharpLabel

Cómo ajustar automáticamente las celdas en Excel usando C#: Figura 5 - IronXL.Excel NuGet package

Con esto estamos listos para empezar a codificar.

Paso 3: Ajuste automático del ancho de columna mediante la biblioteca IronXL

El método AutoSizeColumn de la biblioteca IronXL ajusta el ancho de una columna para que se adapte a su contenido. Este método calcula la anchura del texto en función de la fuente utilizada en la celda. Si la fuente exacta no está disponible en el sistema, intentará medirla utilizando una fuente predeterminada. Si no se encuentra ninguna fuente predeterminada, intentará utilizar cualquier fuente disponible. Sin embargo, si no se encuentra ninguna fuente, se lanzará una excepción. Utiliza como parámetro un índice de columna de base cero. Debe estar dentro de los límites definidos por 0 y (ColumnCount - 1). Se lanza una ArgumentException si el columnIndex proporcionado está fuera del rango válido. SixLabors.Fonts.FontException se lanza cuando no hay fuentes instaladas en la máquina.

Ahora, veamos cómo podemos usar esto para cambiar el tamaño de un archivo de Excel. Puedes descargar un archivo de Excel de muestra desde aquí.

Fichero de entrada

Aquí puede ver que los anchos de columna no están bien definidos y, por lo tanto, son muy difíciles de leer. Ahora vamos a

ver cómo podemos utilizar la biblioteca IronXL para Autoajustar los anchos de columna en una hoja de Excel.

Cómo ajustar automáticamente las celdas en Excel usando C#: Figura 6 - Archivo de Excel de entrada

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var colCount = workSheet.Columns.Count();
for (int i = 0; i < colCount; i++)
{ 
    // auto fit column width for index i
    workSheet.AutoSizeColumn(i);
}
workBook.SaveAs("autoResize.xlsx"); // result file
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var colCount = workSheet.Columns.Count();
for (int i = 0; i < colCount; i++)
{ 
    // auto fit column width for index i
    workSheet.AutoSizeColumn(i);
}
workBook.SaveAs("autoResize.xlsx"); // result file
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private colCount = workSheet.Columns.Count()
For i As Integer = 0 To colCount - 1
	' auto fit column width for index i
	workSheet.AutoSizeColumn(i)
Next i
workBook.SaveAs("autoResize.xlsx") ' result file
$vbLabelText   $csharpLabel

Código Explicación

  1. Inicialmente cargamos el FinancialSample.xlsx usando el método WorkBook.Load().

  2. A continuación obtenemos el rango de celdas para el que hay que ajustar el ancho de las columnas, en este caso obtenemos el recuento de columnas.

  3. A continuación, iteramos a través de todos los índices para autodimensionar el ancho de las columnas

  4. A continuación, guardamos el resultado en un nuevo archivo con el nombre autoResize.xlsx

Archivo de salida

A continuación puede ver que todas las columnas tienen tamaño automático y son visibles.

Cómo ajustar automáticamente las celdas en Excel usando C#: Figura 7 - Excel de salida con ancho de columna autoajustado.

Paso 4: Autoajuste de la altura de la fila utilizando la biblioteca IronXL.

El método AutoSizeRow ajusta la altura de una fila para acomodar su contenido. Es importante tener en cuenta que este método calcula la altura del texto en función de la fuente utilizada en la celda. Si la fuente exacta no está disponible en el sistema, intentará medirla utilizando una fuente predeterminada. Si no se encuentra ninguna fuente predeterminada, intentará utilizar cualquier fuente disponible. Sin embargo, si no se encuentra ninguna fuente, se lanzará una excepción. Utiliza como parámetro un índice de fila de base cero. Debe estar dentro de los límites definidos por 0 y (RowCount - 1). Se lanza una ArgumentException si el rowIndex proporcionado está fuera del rango válido. SixLabors.Fonts.FontException se lanza cuando no hay fuentes instaladas en la máquina

Archivo Excel de entrada

En el ejemplo siguiente, puede ver que algunas de las filas no tienen el tamaño adecuado para fijar los datos. Veamos ahora el código C# para autoajustar las alturas de las filas de Excel.

Cómo ajustar automáticamente las celdas en Excel usando C#: Figura 8 - Archivo Excel de entrada

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var rowCount = workSheet.RowCount;
for (int i = 0; i < rowCount; i++)
{
    workSheet.AutoSizeRow(i);
}
workBook.SaveAs("autoResizeRows.xlsx"); // result file
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var rowCount = workSheet.RowCount;
for (int i = 0; i < rowCount; i++)
{
    workSheet.AutoSizeRow(i);
}
workBook.SaveAs("autoResizeRows.xlsx"); // result file
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private rowCount = workSheet.RowCount
For i As Integer = 0 To rowCount - 1
	workSheet.AutoSizeRow(i)
Next i
workBook.SaveAs("autoResizeRows.xlsx") ' result file
$vbLabelText   $csharpLabel

Código Explicación

  1. Inicialmente, cargamos el archivo FinancialSample.xlsx usando el método WorkBook.Load().

  2. A continuación obtenemos el rango de celdas para el que hay que ajustar la altura de las filas, en este caso obtenemos el recuento de filas.

  3. A continuación, iteramos a través de todos los índices para autodimensionar las alturas de las filas

  4. A continuación, guardamos el resultado en un nuevo archivo con el nombre autoResizeRows.xlsx

Archivo Excel de salida

Cómo ajustar automáticamente el tamaño de las celdas en Excel usando C#: Figura 9 - Salida de Excel con altura de columna ajustada automáticamente.

Paso 5: Establezca el Ancho de Columna y el Alto de Fila Manualmente usando IronXL

Además de las filas y columnas de tamaño automático, IronXL también ofrece ajustar el ancho y la altura manualmente a un valor específico de altura de fila y un valor específico de ancho de columna.

Archivo Excel de entrada

Cómo ajustar automáticamente celdas en Excel usando C#: Figura 10 - Archivo Excel de entrada

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
workBook.SaveAs("specificValue.xlsx");
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width
workBook.SaveAs("specificValue.xlsx");
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private row As RangeRow = workSheet.GetRow(0)
row.Height = 500 ' Set height
Dim col As RangeColumn = workSheet.GetColumn(0)
col.Width = 5000 ' Set width
workBook.SaveAs("specificValue.xlsx")
$vbLabelText   $csharpLabel

Código Explicación

  1. Inicialmente, cargamos el archivo FinancialSample.xlsx usando la función WorkBook.Load().

  2. A continuación, obtenemos el rango de celdas para el que hay que ajustar la altura de las filas y también el rango de celdas para el que hay que ajustar la anchura de las columnas

  3. A continuación, establecemos los valores de altura y anchura

  4. A continuación, guardamos el resultado en un nuevo archivo con el nombre specificValue.xlsx

Archivo Excel de salida

Cómo ajustar automáticamente las celdas en Excel usando C#: Figura 11 - Salida de Excel con ancho y alto de columna de tamaño manual.

Licencias

IronXL.

La licencia obtenida debe colocarse en el archivo appSettings.json

{
  "IronXL.License.LicenseKey":"myTrialKey"
}
{
  "IronXL.License.LicenseKey":"myTrialKey"
}
If True Then
  "IronXL.License.LicenseKey":"myTrialKey"
End If
$vbLabelText   $csharpLabel

Conclusión

Con funciones como AutoSizeColumn y AutoSizeRow de IronXL, los desarrolladores pueden asegurar sin esfuerzo que las hojas de cálculo de Excel se ajusten dinámicamente al contenido que contienen, ya sea datos importados, informes dinámicos, contenido generado por el usuario o resultados de análisis de datos.

La compatibilidad de IronXL con varios marcos de trabajo .NET, incluyendo .NET Core y Azure, asegura que los desarrolladores puedan incorporar la automatización de Excel en una amplia gama de aplicaciones sin depender de Microsoft Office o Excel Interop. Además, el soporte de IronXL para múltiples lenguajes y plataformas .NET lo convierte en una opción versátil para los desarrolladores que buscan simplificar las tareas de manipulación de Excel en entornos diversos.

En esencia, IronXL capacita a los desarrolladores para aumentar la productividad, precisión y flexibilidad en proyectos de automatización de Excel, ofreciendo un conjunto completo de características para satisfacer las demandas del desarrollo moderno en C#. Ya sea generando informes, analizando datos o presentando información, IronXL proporciona las herramientas necesarias para sobresalir en la automatización de Excel dentro del ecosistema de C#.

Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.
< ANTERIOR
Cómo importar Excel a SQL Server en C#
SIGUIENTE >
Cómo analizar un archivo Excel en Python