Cómo redimensionar automáticamente filas y columnas
Cambiar el tamaño de las filas y columnas de una hoja de cálculo puede ahorrar mucho espacio y hacerla más legible. La biblioteca IronXL C# proporciona la funcionalidad para redimensionar automáticamente filas y columnas. Al estar realizado en C#, los métodos de redimensionamiento pueden ser llamados para todas las filas y columnas existentes, automatizando la tarea manual en la hoja de cálculo.
Cómo redimensionar automáticamente filas y columnas
- Download the C# library to auto resize rows and columns in Excel
- Importar el archivo Excel deseado
- Utilice el método
AutoSizeRow
para redimensionar automáticamente las filas - Utilice el método
AutoSizeColumn
para redimensionar las columnas según el ancho de su contenido - Establezca los valores de altura y ancho según sus requisitos
Comienza con IronXL
Comience a usar IronXL en su proyecto hoy con una prueba gratuita.
Ejemplo de redimensionamiento automático de filas
El método AutoSizeRow
redimensiona automáticamente la altura de una(s) fila(s) especificada(s) según 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")
Demostración
Ejemplo de redimensionamiento automático de columnas
Utiliza el método AutoSizeColumn
para ajustar el ancho de la(s) columna(s) según 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")
Demostración

Consejos
Ejemplo de redimensionamiento automático avanzado de filas
Otro sobrecarga del método AutoSizeRow
toma un segundo parámetro como un valor Boolean. Cuando se establece en true, también se considerará la altura de las celdas combinadas tomando el valor de la altura de la celda superior izquierda en la región de combinación y dividiéndolo por el número de filas en la región combinada. Esta condición se aplica cuando el contenido de la celda combinada tiene la altura más alta en relación con el resto de las filas de la región combinada.
: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")
Ejemplo
Por ejemplo, supongamos que el contenido tiene una altura de 192 píxeles y se encuentra en una región combinada que abarca 3 filas. Al aplicar el ajuste 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. Recuerde que el método AutoSizeRow
debe aplicarse a cada fila individualmente.
¿Y si el valor es falso?
Cuando el valor está establecido en false, el método AutoSizeRow
ajustará la altura de la fila según el contenido de la celda con la altura más alta. En Microsoft Excel, cuando se fusiona un rango de celdas, solo retiene el valor de la celda superior izquierda y borra el resto. Sin embargo, con IronXL, la operación de fusión se realiza sin borrar los valores de las otras celdas en la región fusionada.
: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)

Para fines de demostración, ajusté manualmente la altura de la fila en lugar de usar la función de ajuste automático de altura de fila de Excel. Esto se hizo para evitar añadir un notable relleno superior e inferior.
Con el parámetro useMergedCells en false, no se tiene en cuenta la altura de las celdas combinadas. Como resultado, no hay cambios en la altura, y la altura de cada fila se calcula únicamente en función de su contenido.
Ejemplo de redimensionamiento automático avanzado de columnas
Similar a AutoSizeRow
, también puedes hacer que el redimensionamiento de columnas considere el ancho de las celdas combinadas. Cuando se establece en true, se tendrá en cuenta el ancho de las celdas combinadas. Si la celda combinada tiene el contenido más largo, la anchura de la columna redimensionada será la anchura de la celda combinada dividida por el número de columnas de la región combinada.
: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")
Ejemplo
Por ejemplo, si el contenido tiene un ancho de 117 píxeles y se encuentra en una región combinada que abarca 2 columnas, aplicar el autoajuste en 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.

¿Y si el valor es falso?
Cuando el valor se establece en false, el método AutoSizeColumn
ajusta el ancho basado en el contenido de la celda con la mayor longitud. En Microsoft Excel, cuando se combina un rango de celdas, solo se mantiene el valor superior izquierdo y se borran los demás. Sin embargo, el método Merge de IronXL NO borra el valor de las otras celdas en la región combinada.
: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)

La anchura de las celdas combinadas no se priorizaba, por lo que no se producían cambios en la anchura, ya que la anchura de cada columna se calculaba en función de la anchura de su contenido.
Las Diferencias entre Excel y IronXL Auto Resize
Filas
La función de Excel de autoajuste del alto de fila aplica un notable relleno superior e inferior a la celda.

Columnas
La función de Excel de ajuste automático del ancho de columna también aplica un relleno izquierdo y derecho a la celda, pero es menos perceptible.

Ejemplo de redimensionamiento manual de altura y anchura
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 las columnas y filas para satisfacer tus requisitos específicos. Esto le permite fijarlas en un valor determinado que se adapte a sus necesidades.
- Ajusta la altura: establece la propiedad Height del RangeRow.
- Ajustar el ancho: establecer 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
Unidades de altura y anchura en Excel
Las unidades de medida para la altura y la anchura en Excel difieren entre sí. En concreto, la altura se mide en 1/20 de punto, mientras que la anchura se determina en función del número de "0" que caben en una celda utilizando el tipo de letra especificado en el estilo "Normal".
Para simplificar la conversión de unidades, pongamos el valor en IronXL, que corresponde a los píxeles de visualización en Microsoft Excel. Es importante señalar que un píxel no representa un punto físico en la pantalla; sino que se define como 1/96 de pulgada, independientemente de la resolución real de la pantalla. El propio Excel está diseñado para ser independiente de la resolución y no depende de los píxeles físicos.
Para establecer una relación entre las medidas de altura y anchura de IronXL y Excel, puede considerar las siguientes aproximaciones:
- Altura: RangeRow.Height = 10 resultará en una altura aproximada de 1 píxel.
- Anchura: RangeColumn.Width = 23.255 corresponderá a 1 píxel.