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

Cambiar el tamaño de las filas y columnas en una hoja de cálculo puede ahorrar mucho espacio y hacerla más legible. La biblioteca C# IronXL proporciona la funcionalidad para cambiar automáticamente el tamaño de filas y columnas. Dado que se hace en C#, los métodos de cambio de tamaño se pueden llamar para todas las filas y columnas existentes, automatizando la tarea manual en la hoja de cálculo.

Inicio rápido: Cambio de tamaño automático de una columna o fila con una sola llamada

Con IronXL, puedes cambiar el tamaño de cualquier fila o columna en solo una línea: sin Interop, sin complicaciones. Usa WorkSheet.AutoSizeColumn(int, bool) o WorkSheet.AutoSizeRow(int, bool) para ajustar instantáneamente las dimensiones basadas en el contenido de la celda (celdas fusionadas opcional).

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

Ejemplo de cambio de tamaño automático de filas

El método AutoSizeRow cambia automáticamente el tamaño de la altura de una(s) fila(s) especificada(s) basado en su contenido.

: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

Demostración

Cambiar automáticamente el tamaño de la fila

Ejemplo de cambio de tamaño automático de columnas

Usa el método AutoSizeColumn para cambiar el tamaño del ancho de columna(s) basado en la longitud de su contenido.

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

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

// Apply auto resize on column A
workSheet.AutoSizeColumn(0);

workBook.SaveAs("autoResizeColumn.xlsx");
Imports IronXL

' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Apply auto resize on column A
workSheet.AutoSizeColumn(0)

workBook.SaveAs("autoResizeColumn.xlsx")
$vbLabelText   $csharpLabel

Demostración

Cambio automático de tamaño de columna

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


Ejemplo avanzado de cambio de tamaño automático de filas

Otra sobrecarga del método AutoSizeRow toma un segundo parámetro como un valor Booleano. Este parámetro te permite considerar las celdas fusionadas al cambiar de tamaño.

: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

Ejemplo

Por ejemplo, supongamos que 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 la altura del contenido de 192 px entre 3, resultando en una altura de 64 px para cada fila. Recuerda que el método AutoSizeRow debe aplicarse a cada fila individualmente.

Cambio de tamaño automático avanzado de fila

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

Cuando el valor se establece en falso, el método AutoSizeRow ajustará la altura de la fila basado en el contenido de la celda con mayor altura. In Microsoft Excel, when a range of cells is merged, it retains only the value of the upper-left cell and clears the rest. However, with IronXL, the Merge operation is performed without erasing the values of other cells in the merged region.

: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
Cambio de tamaño automático avanzado de fila

For demonstration purposes, I manually adjusted the row height instead of using the Excel autofit row height function. Esto se hizo para evitar agregar un notable relleno en la parte superior e inferior.

Con el parámetro useMergedCells establecido en falso, la altura de las celdas fusionadas no se está considerando. Como resultado, no hay cambios en la altura, y la altura de cada fila se calcula únicamente basado en su contenido.

Ejemplo avanzado de cambio de tamaño automático de columnas

Similar a AutoSizeRow, también puedes hacer que el cambio de tamaño de columnas considere el ancho de las celdas fusionadas. Cuando se establece en true, se tendrá en cuenta el ancho de las celdas fusionadas. Si la celda fusionada tiene el contenido más largo, el ancho de la columna redimensionada será el ancho de la celda fusionada dividido por el número de columnas en la región fusionada.

: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

Ejemplo

Por ejemplo, si el contenido tiene un ancho de 117 píxeles y se encuentra en una región fusionada que abarca 2 columnas, al aplicar el cambio de tamaño automático a cualquiera de estas columnas, resultará en un ancho de 59 píxeles para cada columna. El método AutoSizeColumn debe aplicarse a cada columna individualmente.

Columna de cambio de tamaño automático avanzado

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

Cuando el valor se establece en false, el método AutoSizeColumn ajusta el ancho basado en el contenido de la celda con el mayor ancho. In Microsoft Excel, when a range of cells is merged, it keeps only the upper-left value and erases the rest. However, the IronXL Merge method does NOT erase the value of other cells in the merged region.

: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
Columna de cambio de tamaño automático avanzado

El ancho de las celdas fusionadas no estaba siendo priorizado, resultando en ningún cambio de ancho porque el ancho de cada columna se calculaba basado en el ancho de su contenido.

Las diferencias entre el cambio de tamaño automático de Excel y IronXL

Filas

La función de ajuste automático de altura de fila de Excel aplica un notable relleno en la parte superior e inferior de la celda.

Comparación del cambio de tamaño automático de filas en Excel y IronXL

Columnas

La función de ajuste automático de ancho de columna de Excel también aplica un relleno a la izquierda y derecha de la celda, pero es menos notable.

Comparación del cambio de tamaño automático de columnas en Excel y IronXL

Ejemplo de cambio de tamaño manual de altura y ancho

Además de confiar en los métodos AutoSizeRow y AutoSizeColumn para calcular y ajustar el ancho y la altura del contenido, también tienes la flexibilidad de ajustar manualmente el ancho y la altura de columnas y filas para cumplir con tus requisitos específicos. Esto te permite establecerlos en un cierto valor que se adapte a tus necesidades.

  • Ajustar la altura: establece la propiedad Height del RangeRow.
  • Ajustar el ancho: establece la propiedad Width del 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

Unidades de altura y ancho en Excel

Las unidades de medida para altura y ancho en Excel difieren entre sí. Específicamente, la altura se mide en 1/20 de un punto, mientras que el ancho se determina basado en la cantidad de "0" que pueden caber en una celda utilizando la fuente especificada en el estilo "Normal".

Para simplificar la conversión de unidades, interpretemos el valor en IronXL, que corresponde a los píxeles en pantalla en Microsoft Excel. Es importante señalar que un píxel no representa un punto físico en la pantalla; más bien, se define como 1/96 de una pulgada, independientemente de la resolución real de la pantalla. Excel en sí está diseñado para ser independiente de la resolución y no se basa en píxeles físicos.

Para establecer una relación entre las mediciones de altura y ancho de IronXL y Excel, puedes considerar las siguientes aproximaciones:

  • Altura: RangeRow.Height = 10 resultará en una altura aproximada de 1 píxel.
  • Ancho: RangeColumn.Width = 23.255 corresponderá a 1 píxel.

Preguntas Frecuentes

¿Cómo ajustar automáticamente las filas en Excel con C#?

Puedes utilizar el método AutoSizeRow en IronXL para ajustar automáticamente la altura de las filas según su contenido en una hoja de Excel.

¿Método para ajustar automáticamente columnas en Excel?

IronXL ofrece el método AutoSizeColumn, que permite el ajuste automático de los anchos de columna basado en el contenido.

¿Cómo asegurar redimensionamiento correcto de celdas combinadas en Excel?

IronXL admite el ajuste de tamaño de las celdas combinadas utilizando un parámetro booleano en los métodos AutoSizeRow y AutoSizeColumn para considerar las celdas combinadas durante el redimensionamiento.

¿Qué ventajas ofrece IronXL sobre las funciones nativas de autoajuste de Excel?

IronXL ofrece un control preciso sobre las dimensiones de las celdas sin el acolchado adicional que aplican las funciones nativas de autoajuste de Excel, permitiendo un redimensionamiento más exacto de las celdas.

¿Es posible manipular archivos de Excel en C# sin Microsoft Office Interop?

Sí, IronXL te permite manipular archivos de Excel directamente en C# sin depender de Microsoft Office Interop, lo que lo hace más eficiente y fácil de usar.

¿Cómo configuro manualmente los tamaños de fila y columna en un archivo de Excel usando C#?

Puedes establecer manualmente la altura y el ancho de las filas y columnas ajustando las propiedades Height y Width de RangeRow y RangeColumn en IronXL.

¿Qué unidades utiliza IronXL al establecer las alturas de filas y anchos de columnas?

IronXL utiliza las unidades de medida predeterminadas de Excel, donde la altura está en 1/20 de un punto y el ancho está determinado por el número de '0's que caben usando la fuente en el estilo 'Normal'.

¿Puede IronXL automatizar el proceso de redimensionamiento de hojas de Excel?

Sí, IronXL puede automatizar el redimensionamiento de filas y columnas, lo que mejora la productividad al reducir la necesidad de ajustes manuales.

¿Existen recursos disponibles para aprender a redimensionar filas y columnas de Excel usando C#?

Sí, IronXL proporciona un tutorial en video sobre redimensionamiento de filas y columnas, disponible en YouTube, para ayudar a los desarrolladores a aprender a usar estas características.

¿Por qué es importante el autoajuste en las hojas de cálculo de Excel?

El autoajuste es crucial para mejorar la legibilidad y estética de las hojas de cálculo de Excel, asegurando que todo el contenido sea visible y esté presentado ordenadamente sin intervención manual.

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,738,553 | Version: 2025.11 recién lanzado