Saltar al pie de página
USANDO IRONXL

Cómo ajustar automáticamente celdas en Excel usando C#

En el mundo actual impulsado por los datos, Microsoft Excel sigue siendo una herramienta indispensable para empresas y profesionales por igual. Ya sea para analizar números, crear informes o visualizar datos, la versatilidad de Excel no tiene comparación. Sin embargo, cuando se trata de manipular archivos de Excel de forma programática en C#, los desarrolladores a menudo enfrentan desafíos. Aquí es donde entra en juego la biblioteca IronXL, ofreciendo una solución sin complicaciones para la automatización de Excel dentro del entorno C#.

La biblioteca IronXL de Iron Software proporciona APIs intuitivas para manejar documentos de Excel sin problemas en los entornos C# .NET y VB.NET. Con IronXL, no hay necesidad de instalar componentes de Microsoft Office o Excel Interop. Permite a los desarrolladores leer, editar y crear archivos de hojas de cálculo de Excel sin esfuerzo, ofreciendo soporte completo para varios marcos de .NET, incluidos .NET 8, 7, 6, Core Frameworks y entornos de Azure.

En este artículo, aprenderemos cómo ajustar automáticamente el ancho y la altura de las columnas en Excel usando C# e IronXL.

  1. Crea un Proyecto de Visual Studio para hacer una demostración de Celdas Autofit en una hoja de trabajo de Excel.
  2. Instalar la biblioteca IronXL en el proyecto.
  3. Ajuste automático de ancho de columna utilizando la biblioteca IronXL.
  4. Ajuste automático de altura de fila utilizando la biblioteca IronXL.
  5. Establecer manualmente el ancho de columna y la altura de fila utilizando la biblioteca IronXL.

IronXL

La biblioteca IronXL es una biblioteca .NET versátil diseñada para simplificar la manipulación de hojas de cálculo de Excel para desarrolladores de C#. Ofreciendo una API rápida e intuitiva, IronXL permite a los usuarios acceder, modificar y generar archivos de Excel sin depender de la Interoperabilidad de Office. Su compatibilidad se extiende a varios marcos de .NET, incluidos .NET Core y Azure, sin requerir dependencias especiales o la instalación de 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, incluidas aplicaciones de consola, web y de escritorio. Además, la compatibilidad de IronXL se extiende a través de diferentes plataformas, incluidas Windows, Linux, macOS, Docker, Azure y AWS, convirtiéndola en una herramienta indispensable para los desarrolladores que buscan integración eficiente de Excel en diversos entornos.

Características principales de la biblioteca IronXL

  1. Integración fácil: IronXL se integra sin problemas con las aplicaciones C#, proporcionando una API simple e intuitiva para la automatización de Excel. Los desarrolladores pueden comenzar 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 hojas de cálculo nuevas o existentes sin esfuerzo. Esta capacidad es esencial para tareas como importación/exportación de datos y generación de informes.
  3. Formateo y estilo: IronXL permite aplicar formato y estilo a las celdas de Excel, incluidos fuentes, colores, bordes y más. Esto asegura que los archivos de Excel generados mantengan una apariencia profesional y pulida.
  4. Soporte de fórmulas: ¿Necesitas realizar cálculos complejos o aplicar fórmulas a datos de Excel? IronXL te cubre con soporte para fórmulas de Excel, permitiéndote automatizar cálculos y manipulación de datos.
  5. Autofit Cells: Una de las características útiles ofrecidas por IronXL es la capacidad de ajustar automáticamente las celdas en Excel, asegurando que el contenido se ajuste a las celdas sin recorte.

Paso 1: Cree un proyecto de Visual Studio para demostrar el ajuste automático de celdas en una hoja de cálculo de Excel.

Para comenzar, vamos a crear un proyecto de Visual Studio como se muestra a continuación. Seleccionar la plantilla de aplicación de consola de la lista

Cómo ajustar automáticamente las celdas en Excel usando C#: Figura 1 - Abrir Visual Studio y agregar un nuevo proyecto del tipo Aplicación de Consola en C#.

Proporcionar un nombre y ubicación para el proyecto

Cómo ajustar automáticamente las celdas en Excel usando C#: Figura 2 - A continuación, especifica el nombre del proyecto y la ubicación.

Seleccionar la versión de .NET requerida del desplegable y hacer clic en crear

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

Paso 2: Instale la biblioteca IronXL en el proyecto.

Instalar la biblioteca IronXL desde el Administrador de Paquete NuGet de Visual Studio

Cómo ajustar automáticamente las celdas en Excel usando C#: Figura 4 - Instala IronXL usando la administración del paquete NuGet para la solución buscando IronXL en la barra de búsqueda del Administrador de Paquete NuGet, luego selecciona el proyecto y haz clic en el botón Instalar.

El paquete también se puede instalar usando la línea de comando 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
SHELL

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

Con esto, estamos listos para comenzar a codificar.

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

El método AutoSizeColumn de la biblioteca IronXL ajusta el ancho de una columna para adaptarse a su contenido. Este método calcula el ancho del texto basado en la fuente utilizada en la celda. Si la fuente exacta no está disponible en el sistema, intentará medirla usando una fuente predeterminada. Si no se encuentra una fuente predeterminada, intentará utilizar cualquier fuente disponible. Sin embargo, si no se encuentran fuentes, se lanzará una excepción. Utiliza un índice de columna basado en cero como parámetro. 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 usar esto para redimensionar un archivo de Excel. Puedes descargar un archivo de Excel de ejemplo de aquí.

Archivo de entrada

Aquí puedes ver que los anchos de columna no están definidos adecuadamente y por lo tanto son muy difíciles de leer. Ahora vamos a ver cómo podemos usar la biblioteca IronXL para ajustar automáticamente 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);
}

// Save the autofitted workbook as a new file
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);
}

// Save the autofitted workbook as a new file
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

' Save the autofitted workbook as a new file
workBook.SaveAs("autoResize.xlsx") ' Result file
$vbLabelText   $csharpLabel

Explicación del código

  1. Inicialmente, cargamos el FinancialSample.xlsx usando el método WorkBook.Load().
  2. Luego obtenemos el conteo de columnas para ajustes.
  3. Iteramos a través de todos los índices de columnas para autoajustar los anchos de columna.
  4. Finalmente, guardamos los resultados en un nuevo archivo llamado autoResize.xlsx.

Archivo de salida

A continuación, puedes ver que todas las columnas están autoajustadas y visibles.

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

Paso 4: Ajuste automático de la altura de la fila usando la biblioteca IronXL

El método AutoSizeRow ajusta la altura de una fila para adaptarse a su contenido. Es importante señalar que este método calcula la altura del texto basado en la fuente utilizada en la celda. Si la fuente exacta no está disponible en el sistema, intentará medirla usando una fuente predeterminada. Si no se encuentra una fuente predeterminada, intentará utilizar cualquier fuente disponible. Sin embargo, si no se encuentran fuentes, se lanzará una excepción. Utiliza un índice de fila basado en cero como parámetro. 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. Se lanza una SixLabors.Fonts.FontException cuando no hay fuentes instaladas en la máquina.

Archivo de entrada de Excel

En el ejemplo siguiente, puedes ver que algunas de las filas no tienen el tamaño adecuado para ajustar los datos correctamente. Ahora veamos el código C# para ajustar automáticamente las alturas de filas de Excel.

Cómo ajustar automáticamente las celdas en Excel usando C#: Figura 8 - Archivo de 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++)
{
    // Auto-fit row height for index i
    workSheet.AutoSizeRow(i);
}

// Save the autofitted workbook as a new file
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++)
{
    // Auto-fit row height for index i
    workSheet.AutoSizeRow(i);
}

// Save the autofitted workbook as a new file
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
	' Auto-fit row height for index i
	workSheet.AutoSizeRow(i)
Next i

' Save the autofitted workbook as a new file
workBook.SaveAs("autoResizeRows.xlsx") ' Result file
$vbLabelText   $csharpLabel

Explicación del código

  1. Inicialmente, cargamos el FinancialSample.xlsx usando el método WorkBook.Load().
  2. Recuperamos el conteo total de filas.
  3. Iteramos a través de todos los índices de fila para autoajustar las alturas de fila.
  4. Finalmente, guardamos los resultados en un nuevo archivo llamado autoResizeRows.xlsx.

Archivo de Excel de salida

Cómo ajustar automáticamente las celdas en Excel usando C#: Figura 9 - Salida de Excel con altura de fila autoajustada.

Paso 5: Establezca el ancho de la columna y la altura de la fila manualmente usando IronXL

Además de autoajustar filas y columnas, IronXL también ofrece la opción de ajustar manualmente el ancho de columna y la altura de fila a un valor específico.

Archivo de entrada de Excel

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

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Manually set row height and column width
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width

// Save the workbook with specific values set
workBook.SaveAs("specificValue.xlsx");
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Manually set row height and column width
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width

// Save the workbook with specific values set
workBook.SaveAs("specificValue.xlsx");
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Manually set row height and column width
Private row As RangeRow = workSheet.GetRow(0)
row.Height = 500 ' Set height
Dim col As RangeColumn = workSheet.GetColumn(0)
col.Width = 5000 ' Set width

' Save the workbook with specific values set
workBook.SaveAs("specificValue.xlsx")
$vbLabelText   $csharpLabel

Explicación del código

  1. Cargar el FinancialSample.xlsx usando la función WorkBook.Load().
  2. Recuperar filas y columnas específicas para ajustar manualmente sus alturas y anchos.
  3. Establecer los valores deseados de altura y ancho.
  4. Guardar el archivo modificado con el nombre specificValue.xlsx.

Archivo de Excel de salida

Cómo ajustar automáticamente las celdas en Excel usando C#: Figura 11 - Salida de Excel con altura y ancho de columna ajustados manualmente.

Licencias

Obtén una prueba gratuita para usar libremente todas las características de IronXL durante 30 días.

La licencia obtenida debe colocarse en el archivo appSettings.json:

{
  "IronXL.License.LicenseKey": "myTrialKey"
}

Conclusión

Con características como AutoSizeColumn y AutoSizeRow de IronXL, los desarrolladores pueden asegurarse sin esfuerzo de que las hojas de cálculo de Excel se ajusten dinámicamente al contenido que contienen, ya sea que se trate de 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 .NET, incluidos .NET Core y Azure, asegura que los desarrolladores puedan incorporar la automatización de Excel en una amplia gama de aplicaciones sin dependencias de Microsoft Office o Interop de Excel. Además, el soporte de IronXL para múltiples lenguajes y plataformas de .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 empodera a los desarrolladores para mejorar 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 de C# moderno. Ya sea que se trate de generar informes, analizar datos o presentar información, IronXL proporciona las herramientas necesarias para sobresalir en la automatización de Excel dentro del ecosistema de C#.

Preguntas Frecuentes

¿Cómo ajustar celdas en Excel con C#?

Para ajustar automáticamente el tamaño de las celdas en Excel usando C#, utiliza los métodos AutoSizeColumn y AutoSizeRow de IronXL, que ajustan automáticamente los anchos de las columnas y las alturas de las filas para que se ajusten al contenido.

¿Cuáles son los beneficios de usar una biblioteca .NET para la automatización de Excel?

Usar una biblioteca .NET como IronXL para la automatización de Excel simplifica tareas como leer, escribir y formatear archivos de Excel sin necesidad de instalaciones de Microsoft Office. Mejora la productividad y precisión en las aplicaciones C#.

¿Cómo puedo ajustar manualmente el ancho de la columna y la altura de la fila en Excel usando C#?

Con IronXL, puedes ajustar manualmente el ancho de la columna y la altura de la fila usando los métodos GetColumn y GetRow para apuntar a columnas y filas específicas, luego establecer sus propiedades Width y Height.

¿Es IronXL compatible con proyectos .NET Core?

Sí, IronXL es completamente compatible con proyectos .NET Core, lo que permite a los desarrolladores integrar funciones de automatización de Excel sin problemas dentro de entornos .NET modernos.

¿Cómo instalo IronXL en un proyecto .NET?

Para instalar IronXL en un proyecto .NET, usa el Administrador de Paquetes NuGet de Visual Studio o ejecuta el comando dotnet add package IronXL.Excel en la línea de comandos.

¿Puedo usar IronXL sin tener Excel instalado en mi máquina?

Sí, IronXL te permite trabajar con archivos de Excel de manera programática en C# sin requerir que Microsoft Excel esté instalado en tu máquina.

¿Qué debo hacer si encuentro una excepción de fuente al ajustar automáticamente el tamaño de las celdas?

Si encuentras una SixLabors.Fonts.FontException al ajustar automáticamente el tamaño de las celdas, asegúrate de que las fuentes necesarias estén disponibles en tu sistema, ya que IronXL las usa para calcular las dimensiones del texto.

¿Cómo soporta IronXL múltiples lenguajes .NET?

IronXL soporta múltiples lenguajes .NET como C#, VB.NET y F#, proporcionando versatilidad y flexibilidad para los desarrolladores que trabajan en diferentes entornos de programación.

¿Dónde agrego la clave de licencia de IronXL en mi proyecto?

La clave de licencia de IronXL debe agregarse al archivo appSettings.json de tu proyecto bajo la clave 'IronXL.License.LicenseKey' para activar las funciones premium.

¿Cuáles son algunas características clave de IronXL para la automatización de Excel?

IronXL ofrece características clave como fácil integración con aplicaciones C#, lectura y escritura de archivos de Excel, aplicación de formato, soporte para fórmulas de Excel, y ajuste automático de celdas para optimizar la visualización del contenido.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más