USO DE IRONXL

Cómo Autoajustar Celdas en Excel Usando C#

Actualizado 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 IronXL que ofrece una solución perfecta para la automatización de Excel en el entorno C#.

IronXL biblioteca de **Software de hierro proporciona API intuitivas para manejar documentos Excel sin problemas tanto en entornos C# .NET como 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.

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

  1. Instale IronXL biblioteca al proyecto.
  2. Autoajuste del ancho de columna utilizando la biblioteca IronXL.
  3. Ajuste automático de la altura de la fila mediante la biblioteca IronXL.
  4. Establezca el ancho de columna y la altura de fila manualmente utilizando la biblioteca IronXL.

IronXL

IronXL es una versátil biblioteca .NET diseñada para simplificar la manipulación de hojas de cálculo Excel a los desarrolladores de 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 perfectamente con aplicaciones C#, proporcionando una API sencilla 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, puede leer sin esfuerzo datos de archivos de Excel existentes y escribir datos en hojas de cálculo nuevas o existentes. 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 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 características útiles ofrecidas por IronXL es la capacidad de autoajustar celdas en Excel, asegurando que el contenido se ajuste perfectamente dentro de cada celda sin truncamiento.

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 Autoajustar Celdas en Excel Usando C#: Figura 1 - Abrir Visual Studio, y Añadir un nuevo proyecto de tipo Aplicación de Consola en C#.

Indique el nombre y la ubicación del proyecto

Cómo Autoajustar Celdas en Excel Usando C#: Figura 2 - A continuación, 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 Autoajustar Celdas en Excel Usando C#: Figura 3 - A continuación, seleccione la versión requerida de .NET Framework y haga clic en Crear.

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

Instale IronXL desde el gestor de paquetes NuGet de Visual Studio

Cómo Autoajustar Celdas en Excel Usando C#: Figura 4 - Instale IronXL utilizando el Gestor de Paquetes NuGet para Solución buscando "IronXL" en la barra de búsqueda del Gestor de Paquetes NuGet, a continuación, 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
//  o
Install-Package IronXL.Excel
dotnet add package IronXL.Excel --version 2024.3.20
//  o
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
VB   C#

Cómo Autoajustar Celdas en Excel Usando C#: Figura 5 - Paquete IronXL.Excel NuGet

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 IronXL ajusta la anchura de una columna para adaptarla 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. Se lanza una SixLabors.Fonts.FontException cuando no hay fuentes instaladas en la máquina.

Ahora, veamos cómo podemos utilizar esto para cambiar el tamaño de un archivo de Excel. Puede descargar un archivo Excel de ejemplo en 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 Autoajustar Celdas en Excel Usando C#: Figura 6 - Archivo Excel de entrada

using IronXL;
//  Cargar hoja de cálculo de ejemplo
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var colCount = workSheet.Columns.Count();
for (int i = 0; i < colCount; i++)
{ 
    //  ajuste automático del ancho de columna para el índice i
    workSheet.AutoSizeColumn(i);
}
workBook.SaveAs("autoResize.xlsx"); //  archivo de resultados
using IronXL;
//  Cargar hoja de cálculo de ejemplo
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var colCount = workSheet.Columns.Count();
for (int i = 0; i < colCount; i++)
{ 
    //  ajuste automático del ancho de columna para el índice i
    workSheet.AutoSizeColumn(i);
}
workBook.SaveAs("autoResize.xlsx"); //  archivo de resultados
Imports IronXL
'  Cargar hoja de cálculo de ejemplo
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
	'  ajuste automático del ancho de columna para el índice i
	workSheet.AutoSizeColumn(i)
Next i
workBook.SaveAs("autoResize.xlsx") '  archivo de resultados
VB   C#

Código Explicación

  1. Inicialmente cargamos el archivo FinancialSample.xlsx utilizando WorkBook.Load() método.
  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 Autoajustar Celdas en Excel Usando C#: Figura 7 - Excel de salida con auto-tamaño de ancho de columna.

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 (Número de filas - 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 Autoajustar Celdas en Excel Usando C#: Figura 8 - Archivo Excel de entrada

using IronXL;
//  Cargar hoja de cálculo de ejemplo
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"); //  archivo de resultados
using IronXL;
//  Cargar hoja de cálculo de ejemplo
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"); //  archivo de resultados
Imports IronXL
'  Cargar hoja de cálculo de ejemplo
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") '  archivo de resultados
VB   C#

Código Explicación

  1. Inicialmente, cargamos el archivo FinancialSample.xlsx utilizando WorkBook.Load() método.
  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 Autoajustar Celdas en Excel Usando C#: Figura 9 - Salida de Excel con altura de columna autodimensionada.

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 Autoajustar Celdas en Excel Usando C#: Figura 10 - Archivo Excel de entrada

using IronXL;
//  Cargar hoja de cálculo de ejemplo
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 500; //  Ajustar altura
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; //  Fijar anchura
workBook.SaveAs("specificValue.xlsx");
using IronXL;
//  Cargar hoja de cálculo de ejemplo
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 500; //  Ajustar altura
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; //  Fijar anchura
workBook.SaveAs("specificValue.xlsx");
Imports IronXL
'  Cargar hoja de cálculo de ejemplo
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private row As RangeRow = workSheet.GetRow(0)
row.Height = 500 '  Ajustar altura
Dim col As RangeColumn = workSheet.GetColumn(0)
col.Width = 5000 '  Fijar anchura
workBook.SaveAs("specificValue.xlsx")
VB   C#

Código Explicación

  1. Inicialmente, cargamos el archivo FinancialSample.xlsx utilizando WorkBook.Load() función.
  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 Autoajustar Celdas en Excel Usando C#: Figura 11 - Salida de Excel con columnas 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
VB   C#

Conclusión

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

IronXL La compatibilidad de IronXL con varios marcos .NET, incluidos .NET Core y Azure, garantiza 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, la compatibilidad de IronXL con varios lenguajes y plataformas .NET lo convierte en una opción versátil para los desarrolladores que buscan agilizar las tareas de manipulación de Excel en diversos entornos.

En esencia, IronXL permite a los desarrolladores mejorar la productividad, la precisión y la flexibilidad en los proyectos de automatización de Excel, ofreciendo un completo conjunto de funciones para satisfacer las exigencias del desarrollo moderno en C#. Ya se trate de generar informes, analizar datos o presentar información, IronXL proporciona las herramientas necesarias para destacar en la automatización de Excel dentro del ecosistema C#.

SIGUIENTE >
Cómo analizar un archivo Excel en Python

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 897,936 Ver licencias >
123