Cómo ajustar automáticamente el tamaño de filas y columnas en Excel | IronXL

Cómo redimensionar automáticamente filas y columnas de Excel en C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL permite redimensionar filas y columnas de forma automática en C# con métodos como AutoSizeRow() y AutoSizeColumn() que ajustan las dimensiones en función del contenido de la celda, eliminando el formato manual de las hojas de cálculo y admitiendo cálculos de celdas fusionadas. Esta función automatiza los flujos de trabajo de Excel adaptando dinámicamente las dimensiones de las celdas a su contenido, lo que garantiza hojas de cálculo profesionales sin intervención manual.

Inicio rápido: Cambiar el tamaño automáticamente de una columna o fila con una sola llamada

Con IronXL, puede cambiar el tamaño de cualquier fila o columna en una sola línea. Use WorkSheet.AutoSizeColumn(int, bool) o WorkSheet.AutoSizeRow(int, bool) para ajustar las dimensiones según el contenido de la celda (las celdas combinadas son opcionales). Este enfoque funciona en todas las plataformas .NET sin necesidad de instalar Excel.

  1. Instala IronXL con el Administrador de Paquetes NuGet

    PM > Install-Package IronXL.Excel
  2. Copie y ejecute este fragmento de código.

    // One-line: auto-resize column A including merged cells
    workSheet.AutoSizeColumn(0, true);
    // Or auto-resize row 5 quickly
    workSheet.AutoSizeRow(4, true);
  3. Despliegue para probar en su entorno real

    Comienza a usar IronXL en tu proyecto hoy mismo con una prueba gratuita

    arrow pointer

¿Cómo redimensionar automáticamente las filas?

El método AutoSizeRow redimensiona automáticamente la altura de filas especificadas en función de su contenido. Esta función garantiza que todo el texto de las celdas sea visible, lo que evita el truncamiento y mejora la legibilidad. When working with Excel files without Interop, IronXL calculates optimal row height based on font size, cell content, and formatting attributes.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-rows.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Apply auto resize on row 2
workSheet.AutoSizeRow(1);

workBook.SaveAs("autoResize.xlsx");
$vbLabelText   $csharpLabel

El algoritmo de redimensionamiento automático tiene en cuenta la métrica de las fuentes, el relleno de las celdas y los ajustes de ajuste del texto para determinar la altura óptima. Para los desarrolladores que migran de la automatización tradicional de Excel, esto proporciona una alternativa eficaz que no requiere la instalación de Excel.

¿Cómo es el resultado?

Comparación del antes y el después de una cuadrícula de datos que muestra filas redimensionadas automáticamente que se expanden para mostrar la información completa de los empleados

¿Cómo redimensionar automáticamente las columnas?

Utilice el método AutoSizeColumn para cambiar el tamaño del ancho de la columna según la longitud del contenido. Este método analiza el contenido más largo de cada columna y ajusta la anchura en consecuencia, garantizando que todos los datos sean visibles sin desplazamiento horizontal. El algoritmo tiene en cuenta la longitud del texto, el formato numérico, la visualización de fechas y otros formatos de celda que afectan a la anchura requerida.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Apply auto resize to rows individually
workSheet.AutoSizeRow(0, true);
workSheet.AutoSizeRow(1, true);
workSheet.AutoSizeRow(2, true);

workBook.SaveAs("advanceAutoResizeRow.xlsx");
$vbLabelText   $csharpLabel

Cuando se trabaja con datos o informes financieros, el tamaño adecuado de las columnas es crucial para la legibilidad. IronXL's auto-resize functionality integrates with features like cell borders and alignment to create professional spreadsheets.

¿Cómo es el resultado?

Hoja de cálculo Excel antes y después del redimensionamiento automático: columnas estrechas con texto truncado frente a columnas de tamaño adecuado que muestran el contenido completo

ConsejosTodas las posiciones de índice de filas y columnas siguen una indexación basada en cero.


¿Cómo manejo el cambio de tamaño avanzado de filas con celdas combinadas?

Otra sobrecarga del método AutoSizeRow toma un segundo parámetro booleano. Este parámetro permite tener en cuenta las celdas combinadas al redimensionar. When working with merged cells in Excel, auto-resize behavior becomes more complex as content spans multiple cells.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Apply auto resize to rows individually
workSheet.AutoSizeRow(0, true);
workSheet.AutoSizeRow(1, true);
workSheet.AutoSizeRow(2, true);

workBook.SaveAs("advanceAutoResizeRow.xlsx");
$vbLabelText   $csharpLabel

¿Cómo funciona el cálculo de celdas combinadas?

Si el contenido tiene una altura de 192 píxeles y se encuentra en una región fusionada que abarca 3 filas, al aplicar el cambio de tamaño automático a cualquiera de estas filas, el algoritmo divide 192 px entre 3, lo que da como resultado 64 px para cada fila. El método AutoSizeRow debe aplicarse a cada fila individualmente. Esta distribución garantiza que el contenido fusionado se muestre correctamente en todas las filas de la región de fusión.

Comparación del antes y el después de la función de redimensionamiento automático de filas de Excel, que muestra la optimización de la altura de 99 a 33 píxeles

¿Qué pasa si el valor se establece en falso?

Cuando se establece como falso, el método AutoSizeRow ajusta la altura de la fila en función de la celda con el contenido más alto. In Microsoft Excel, merging cells retains only the upper-left value and clears the rest. However, IronXL's Merge operation preserves values of other cells in the merged region, providing more flexibility with complex spreadsheets.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows-false.cs
using IronXL;

workSheet.Merge("A1:A3");

workSheet.AutoSizeRow(0, false);
workSheet.AutoSizeRow(1, false);
workSheet.AutoSizeRow(2, false);
$vbLabelText   $csharpLabel
Comparación del antes y el después de la función de redimensionamiento automático de filas de Excel, que mejora la visibilidad del texto en las celdas de la hoja de cálculo

For demonstration purposes, I manually adjusted row height instead of using the Excel autofit row height function to avoid adding noticeable top and bottom padding.

Con el parámetro useMergedCells establecido en falso, no se considera la altura de la celda fusionada. La altura de cada línea se calcula únicamente en función de su contenido. Este enfoque mantiene alturas de fila coherentes independientemente de las regiones fusionadas.

¿Cómo manejo el cambio de tamaño avanzado de columnas con celdas combinadas?

De manera similar a AutoSizeRow, puede hacer que el cambio de tamaño de la columna considere el ancho de la celda fusionada. Cuando se establece en true, si una celda fusionada tiene el contenido más largo, el ancho de la columna redimensionada es igual al ancho de la celda fusionada dividido por la cantidad de columnas en la región fusionada. This feature helps when creating spreadsheets with complex layouts.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-columns.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Apply auto resize to columns individually
workSheet.AutoSizeColumn(0, true);
workSheet.AutoSizeColumn(1, true);
workSheet.AutoSizeColumn(2, true);

workBook.SaveAs("advanceAutoResizeColumn.xlsx");
$vbLabelText   $csharpLabel

¿Cómo funciona el cálculo del ancho de celda combinado?

Si el contenido tiene una anchura de 117 píxeles en una región combinada que abarca 2 columnas, al aplicar el cambio de tamaño automático a cualquier columna se obtienen 59 píxeles para cada columna. El método AutoSizeColumn debe aplicarse a cada columna individualmente. Esta distribución proporcional garantiza que el contenido fusionado se muestre correctamente en todas las columnas de la región de fusión.

Comparación del antes y el después que muestra el redimensionamiento automático de columnas de Excel, que reduce el ancho de la columna B de 117 a 59 píxeles

¿Qué pasa si el valor se establece en falso?

Cuando se establece en false, el método AutoSizeColumn ajusta el ancho en función de la celda con el contenido más largo. In Microsoft Excel, merging cells keeps only the upper-left value and erases the rest. However, IronXL's Merge method preserves values of other cells in the merged region, giving developers more control over their data.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-columns-false.cs
workSheet.Merge("A1:B1");

workSheet.AutoSizeColumn(0, false);
workSheet.AutoSizeColumn(1, false);
$vbLabelText   $csharpLabel
Antes y después del redimensionamiento automático de columnas de Excel que muestra el ajuste optimizado del ancho de columna para datos de texto

No se dio prioridad a la anchura de las celdas fusionadas, por lo que no se produjeron cambios en la anchura, ya que la anchura de cada columna se calculó en función de la anchura de su contenido.

¿Cuáles son las diferencias entre Excel y IronXL Auto Resize?

Comprender las diferencias entre la funcionalidad de ajuste automático nativa de Excel y la implementación de IronXL ayuda a los desarrolladores a tomar decisiones informadas cuando automatizan operaciones de hojas de cálculo. Estas diferencias son importantes a la hora de mantener la coherencia entre plataformas o cuando se requiere un control preciso de las dimensiones de las celdas.

¿En qué se diferencian las filas?

La función de ajuste automático del alto de fila de Excel aplica un notable relleno superior e inferior a las celdas. IronXL proporciona un control preciso sobre la altura de las filas, calculando el espacio exacto necesario para el contenido sin relleno adicional. Esta diferencia es significativa cuando se trabaja con datos densamente empaquetados o cuando se requieren diseños de impresión precisos.

Comparación entre Excel y IronXL mostrando diferentes manejos de filas para datos de prueba idénticos

¿En qué se diferencian las columnas?

La función de ajuste automático del ancho de columna de Excel aplica relleno izquierdo y derecho a las celdas, aunque de forma menos perceptible. IronXL focuses on exact content width, beneficial when working with automated reporting systems where space optimization is crucial.

Comparación del tamaño automático de columnas de Excel frente a IronXL que muestra diferentes medidas de anchura para un contenido idéntico

¿Cómo redimensionar manualmente la altura y la anchura?

Además de utilizar los métodos AutoSizeRow y AutoSizeColumn para calcular y ajustar las dimensiones automáticamente, puede ajustar manualmente el ancho y la altura de las columnas y filas para cumplir con requisitos específicos. El dimensionado manual es útil cuando se implementan formatos de informe estandarizados o se trabaja con plantillas que requieren dimensiones específicas.

  • Ajustar altura: establece la propiedad Height de RangeRow
  • Ajustar el ancho: establece la propiedad Width de RangeColumn
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-manual.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

RangeRow row = workSheet.GetRow(0);
row.Height = 10; // Set height

RangeColumn col = workSheet.GetColumn(0);
col.Width = 10; // Set width

workBook.SaveAs("manualHeightAndWidth.xlsx");
$vbLabelText   $csharpLabel

¿Qué unidades utiliza Excel para la altura y la anchura?

Las unidades de medida de altura y anchura difieren en Excel. La altura se mide en 1/20 de punto, mientras que el ancho se basa en la cantidad de "0" que caben en una celda utilizando la fuente especificada en el estilo Normal. When working with IronXL's API, understanding these conversions is essential for precise layouts.

Para simplificar la conversión de unidades, interprete los valores de IronXL como píxeles de visualización en Microsoft Excel. Un píxel se define como 1/96 de pulgada, independientemente de la resolución de la pantalla. Excel es independiente de la resolución y no depende de píxeles físicos.

La relación entre las medidas de altura y anchura de IronXL y Excel:

  • Altura: RangeRow.Height = 10 da como resultado aproximadamente 1 pixel
  • Ancho: RangeColumn.Width = 23.255 corresponde a 1 píxel

Para los desarrolladores que requieren un control preciso del diseño de las hojas de cálculo, estos factores de conversión permiten realizar cálculos exactos de las dimensiones. Combinado con otras funciones de formato, el dimensionamiento manual proporciona un control total sobre el aspecto del documento Excel. Remember to apply your license key when deploying applications using these features in production.

Preguntas Frecuentes

¿Cómo puedo cambiar automáticamente el tamaño de las filas de Excel basándome en el contenido de las celdas en C#?

IronXL proporciona el método AutoSizeRow para ajustar automáticamente la altura de las filas en función del contenido de las celdas. Simplemente llame a workSheet.AutoSizeRow(rowIndex, includeMergedCells) donde rowIndex es el número de fila basado en cero. El método calcula la altura óptima basándose en el tamaño de la fuente, el contenido de la celda y los atributos de formato, garantizando que todo el texto sea visible sin truncamiento.

¿Puedo redimensionar automáticamente las columnas de las hojas de cálculo de Excel mediante programación?

Sí, IronXL ofrece el método AutoSizeColumn para ajustar automáticamente los anchos de columna. Utilice workSheet.AutoSizeColumn(columnIndex, includeMergedCells) para cambiar el tamaño de las columnas en función de su contenido más largo. El algoritmo tiene en cuenta la longitud del texto, el formato numérico, la visualización de fechas y otros formatos de celda para determinar el ancho óptimo.

¿Funciona el redimensionamiento automático con celdas combinadas?

IronXL admite el cambio de tamaño automático para celdas combinadas a través del parámetro booleano en los métodos AutoSizeRow y AutoSizeColumn. Establezca el segundo parámetro en true (por ejemplo, workSheet.AutoSizeColumn(0, true)) para incluir cálculos de celdas combinadas al determinar las dimensiones apropiadas.

¿Qué factores se tienen en cuenta al redimensionar automáticamente filas y columnas?

El algoritmo de redimensionamiento automático de IronXL tiene en cuenta múltiples factores, como la métrica de las fuentes, el relleno de las celdas, la configuración del ajuste del texto, el formato de los números, la visualización de las fechas y los bordes de las celdas. Este enfoque integral garantiza hojas de cálculo de aspecto profesional con celdas de tamaño adecuado que acomodan todo el contenido sin intervención manual.

¿Necesito tener instalado Microsoft Excel para utilizar las funciones de cambio de tamaño automático?

No, IronXL funciona de forma independiente sin necesidad de instalar Excel. La biblioteca realiza todos los cálculos internamente, lo que la hace ideal para entornos de servidor y escenarios de implementación en los que no se puede instalar Excel. Este enfoque funciona en todas las plataformas .NET.

¿Puedo cambiar automáticamente el tamaño de varias filas o columnas a la vez?

Mientras que los métodos AutoSizeRow y AutoSizeColumn de IronXL funcionan en filas/columnas individuales, puede realizar fácilmente un bucle a través de múltiples elementos para cambiar su tamaño. Esto permite el procesamiento por lotes de hojas de cálculo enteras o rangos específicos, automatizando los flujos de trabajo de Excel de manera eficiente.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 1,913,565 | Versión: 2026.3 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronXL.Excel
ejecuta una muestra observa cómo tus datos se convierten en una hoja de cálculo.