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 librería IronXL C# proporciona la funcionalidad de 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
- Descargar la biblioteca C# para redimensionar automáticamente filas y columnas en Excel
- Importar el archivo Excel deseado
- Utilice el
AutoSizeRow
para redimensionar automáticamente las filas - Utiliza el
AutoSizeColumn
para cambiar el tamaño de las columnas en función de la anchura de su contenido - Ajuste los valores de altura y anchura a sus necesidades
Instalar con NuGet
Install-Package IronXL.Excel
Ejemplo de redimensionamiento automático de filas
El método AutoSizeRow
redimensiona automáticamente la altura de una fila especificada(s) en función de su contenido.
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-rows.cs
using IronXL;
// Cargar hoja de cálculo existente
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Aplicar cambio de tamaño automático en la fila 2
workSheet.AutoSizeRow(1);
workBook.SaveAs("autoResize.xlsx");
Imports IronXL
' Cargar hoja de cálculo existente
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Aplicar cambio de tamaño automático en la fila 2
workSheet.AutoSizeRow(1)
workBook.SaveAs("autoResize.xlsx")
Demostración
![Redimensionar fila automáticamente](/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-rows.png)
Ejemplo de redimensionamiento automático de columnas
Utilice el método AutoSizeColumn
para redimensionar el ancho de la columna(s) en función de la longitud de su contenido.
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-columns.cs
using IronXL;
// Cargar hoja de cálculo existente
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Aplicar cambio de tamaño automático a la columna A
workSheet.AutoSizeColumn(0);
workBook.SaveAs("autoResizeColumn.xlsx");
Imports IronXL
' Cargar hoja de cálculo existente
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Aplicar cambio de tamaño automático a la columna A
workSheet.AutoSizeColumn(0)
workBook.SaveAs("autoResizeColumn.xlsx")
Demostración
![Redimensionar columna automáticamente](/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-columns.png)
Consejo
Ejemplo de redimensionamiento automático avanzado de filas
Otra sobrecarga del método AutoSizeRow
toma un segundo parámetro como valor Boolean. Cuando se establece en true, la altura de las celdas combinadas también se tendrá en cuenta tomando la altura del valor de la celda superior izquierda en la región combinada y dividiéndola por el número de filas de 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;
// Cargar hoja de cálculo existente
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Aplicar el cambio de tamaño automático a las filas individualmente
workSheet.AutoSizeRow(0, true);
workSheet.AutoSizeRow(1, true);
workSheet.AutoSizeRow(2, true);
workBook.SaveAs("advanceAutoResizeRow.xlsx");
Imports IronXL
' Cargar hoja de cálculo existente
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Aplicar el cambio de tamaño automático a las filas individualmente
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 tamaño automático a cualquiera de estas filas, el algoritmo divide la altura del contenido de 192 px entre 3, lo que da como resultado una altura de 64 px para cada fila. Recuerde que el método AutoSizeRow
debe aplicarse a cada fila individualmente.
![Advance Auto Resize Row](/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-advance-rows-true.png)
¿Y si el valor es falso?
Cuando el valor es falso, el método AutoSizeRow
ajustará la altura de la fila basándose en el contenido de la celda con mayor altura. En Microsoft Excel, cuando se combina un rango de celdas, sólo conserva el valor de la celda superior izquierda y borra el resto. Sin embargo, con IronXL, el Fusión se realiza sin borrar los valores de otras celdas de 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)
![Advance Auto Resize Row](/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-advance-rows-false.png)
Para fines de demostración, he ajustado manualmente la altura de la fila en lugar de utilizar el Excel función de ajuste automático de la altura de las filas. 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
De forma similar a AutoSizeRow
, también puede hacer que el redimensionamiento de las columnas tenga en cuenta la anchura de las celdas combinadas. Si se establece en true, se tendrá en cuenta la anchura 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;
// Cargar hoja de cálculo existente
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Aplicar el cambio de tamaño automático a las columnas de forma individual
workSheet.AutoSizeColumn(0, true);
workSheet.AutoSizeColumn(1, true);
workSheet.AutoSizeColumn(2, true);
workBook.SaveAs("advanceAutoResizeColumn.xlsx");
Imports IronXL
' Cargar hoja de cálculo existente
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Aplicar el cambio de tamaño automático a las columnas de forma individual
workSheet.AutoSizeColumn(0, True)
workSheet.AutoSizeColumn(1, True)
workSheet.AutoSizeColumn(2, True)
workBook.SaveAs("advanceAutoResizeColumn.xlsx")
Ejemplo
Por ejemplo, si el contenido tiene una anchura de 117 píxeles y se encuentra en una región combinada que abarca 2 columnas, al aplicar el tamaño automático en cualquiera de estas columnas se obtendrá una anchura de 59 píxeles para cada columna. El método AutoSizeColumn
debe aplicarse a cada columna individualmente.
![Columna Advance Auto Resize](/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-advance-columns-true.png)
¿Y si el valor es falso?
Cuando el valor es false, el método AutoSizeColumn
ajusta la anchura basándose en el contenido de la celda con mayor anchura. En Microsoft Excel, cuando se combina un rango de celdas, sólo conserva el valor superior izquierdo y borra el resto. Sin embargo, el IronXL Fusión NO borra el valor de otras celdas de 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)
![Columna Advance Auto Resize](/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-advance-columns-false.png)
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.
![Comparación entre Excel y IronXL Aute Resize Row](/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-comparison-rows.png)
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.
![Comparación entre Excel y IronXL Aute Resize Column](/static-assets/excel/how-to/autosize-rows-columns/autosize-rows-columns-comparison-columns.png)
Ejemplo de redimensionamiento manual de altura y anchura
Además de confiar en los métodos AutoSizeRow
y AutoSizeColumn
para calcular y ajustar la anchura y la altura del contenido, también tiene la flexibilidad de ajustar manualmente la anchura y la altura de las columnas y filas para satisfacer sus necesidades específicas. Esto le permite fijarlas en un valor determinado que se adapte a sus necesidades.
- Ajuste la altura: establezca la propiedad Height de la RangeRow.
- Ajuste la anchura: establezca la propiedad Width de la RangeColumn.
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-manual.cs
using IronXL;
// Cargar hoja de cálculo existente
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
RangeRow row = workSheet.GetRow(0);
row.Height = 10; // Ajustar altura
RangeColumn col = workSheet.GetColumn(0);
col.Width = 10; // Fijar anchura
workBook.SaveAs("manualHeightAndWidth.xlsx");
Imports IronXL
' Cargar hoja de cálculo existente
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private row As RangeRow = workSheet.GetRow(0)
row.Height = 10 ' Ajustar altura
Dim col As RangeColumn = workSheet.GetColumn(0)
col.Width = 10 ' Fijar anchura
workBook.SaveAs("manualHeightAndWidth.xlsx")
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 dará como resultado una altura aproximada de 1 píxel.
- Anchura: RangeColumn.Width = 23.255 corresponderá a 1 píxel.