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 proporciona un redimensionamiento automático de filas y columnas en C# con métodos como AutoSizeRow() y AutoSizeColumn() que ajustan las dimensiones en función del contenido de las celdas, eliminando el formateo manual de las hojas de cálculo y admitiendo cálculos de celdas combinadas. 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: Cambio de tamaño automático de una columna o fila con una sola llamada

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

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronXL con el gestor 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

    Empieza a utilizar 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 las 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");
Imports IronXL

' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As 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 de tamaño automático que se expanden para mostrar la información completa del empleado

¿Cómo redimensionar automáticamente las columnas?

Utilice el método AutoSizeColumn para redimensionar el ancho de la columna en función de 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");
Imports IronXL

' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As 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");
Imports IronXL

' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As 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 antes y 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 en false, el método AutoSizeRow ajusta la altura de la fila basándose en 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);
Imports IronXL

workSheet.Merge("A1:A3")

workSheet.AutoSizeRow(0, False)
workSheet.AutoSizeRow(1, False)
workSheet.AutoSizeRow(2, False)
$vbLabelText   $csharpLabel
Comparación de antes y después que muestra 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 false, no se tiene en cuenta la altura de las celdas combinadas. 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 forma similar a AutoSizeRow, puede hacer que el cambio de tamaño de las columnas tenga en cuenta el ancho de las celdas combinadas. Cuando se establece en true, si una celda combinada tiene el contenido más largo, el ancho de columna redimensionado es igual al ancho de la celda combinada dividido por el número de columnas de la región combinada. 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");
Imports IronXL

' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As 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 de antes y después que muestra el redimensionamiento automático de columnas de Excel reduciendo 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 basándose en 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);
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 mostrando 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 de redimensionamiento automático de Excel frente a IronXL que muestra un manejo diferente de las 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 las 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 la anchura y la altura de columnas y filas para satisfacer 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.

  • Ajuste la altura: establezca la propiedad Height de RangeRow
  • Ajuste la anchura: establezca 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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$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 la anchura se basa en el número 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 píxel
  • Anchura: 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.

Chaknith Bin
Ingeniero de Software
Chaknith trabaja en IronXL e IronBarcode. Tiene un profundo conocimiento en C# y .NET, ayudando a mejorar el software y apoyar a los clientes. Sus conocimientos derivados de las interacciones con los usuarios contribuyen a mejores productos, documentación y experiencia en general.
¿Listo para empezar?
Nuget Descargas 1,765,830 | Versión: 2025.12 recién lanzado