Comment redimensionner automatiquement les lignes et les colonnes ?
Le redimensionnement des lignes et des colonnes d'une feuille de calcul permet de gagner beaucoup d'espace et de la rendre plus lisible. La bibliothèque C# IronXL offre la fonctionnalité de redimensionner automatiquement les lignes et les colonnes. Puisqu'elle est réalisée en C#, les méthodes de redimensionnement peuvent être appelées pour toutes les lignes et colonnes existantes, ce qui automatise la tâche manuelle dans la feuille de calcul.
Comment redimensionner automatiquement les lignes et les colonnes ?
- Download the C# library to auto resize rows and columns in Excel
- Importer le fichier Excel souhaité
- Utilisez la méthode
AutoSizeRow
afin de redimensionner automatiquement les lignes - Utilisez la méthode
AutoSizeColumn
pour redimensionner les colonnes en fonction de la largeur de leur contenu - Définir les valeurs de hauteur et de largeur selon vos exigences
Commencez avec IronXL
Commencez à utiliser IronXL dans votre projet dès aujourd'hui avec un essai gratuit.
Redimensionnement automatique des lignes Exemple
La méthode AutoSizeRow
redimensionne automatiquement la hauteur d'une ou plusieurs lignes spécifiées en fonction de leur contenu.
: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")
Démonstration

Exemple de redimensionnement automatique des colonnes
Utilisez la méthode AutoSizeColumn
pour redimensionner la largeur de la ou des colonnes en fonction de la longueur de leur contenu.
: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")
Démonstration

Conseils
Exemple de redimensionnement automatique avancé des lignes
Une autre surcharge de la méthode AutoSizeRow
prend un deuxième paramètre sous forme de valeur booléenne. Lorsqu'il est réglé sur true, la hauteur des cellules fusionnées sera également prise en compte en prenant la hauteur de la valeur de la cellule supérieure gauche dans la région de fusion et en la divisant par le nombre de lignes dans la région fusionnée. Cette condition s'applique lorsque le contenu de la cellule fusionnée a la hauteur la plus élevée par rapport au reste des lignes de la région fusionnée.
: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")
Exemple
Par exemple, supposons que le contenu ait une hauteur de 192 pixels et soit situé dans une région fusionnée qui s'étend sur 3 lignes. Lorsqu'on applique l'ajustement automatique à l'une de ces lignes, l'algorithme divise la hauteur du contenu de 192 px par 3, ce qui donne une hauteur de 64 px pour chaque ligne. N'oubliez pas que la méthode AutoSizeRow
doit être appliquée à chaque ligne individuellement.

Que se passe-t-il si la valeur est fixée à false ?
Lorsque la valeur est définie sur false, la méthode AutoSizeRow
ajustera la hauteur de la ligne en fonction du contenu de la cellule ayant la plus grande hauteur. Dans Microsoft Excel, lorsque des cellules sont fusionnées, seule la valeur de la cellule en haut à gauche est conservée, et le reste est effacé. Cependant, avec IronXL, l'opération de fusion est effectuée sans effacer les valeurs des autres cellules dans la région fusionnée.
: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)

À des fins de démonstration, j'ai ajusté manuellement la hauteur des lignes au lieu d'utiliser la fonction ajustement automatique de la hauteur des lignes d'Excel. Cela a été fait pour éviter d'ajouter un rembourrage visible en haut et en bas.
Si le paramètre useMergedCells est réglé sur false, la hauteur des cellules fusionnées n'est pas prise en considération. Par conséquent, il n'y a pas de changement de hauteur, et la hauteur de chaque ligne est calculée uniquement en fonction de son contenu.
Exemple de redimensionnement automatique des colonnes
Similaire à AutoSizeRow
, vous pouvez également faire en sorte que le redimensionnement des colonnes prenne en compte la largeur des cellules fusionnées. Lorsqu'il est défini sur true, la largeur des cellules fusionnées sera prise en compte. Si la cellule fusionnée a le contenu le plus long, la largeur de la colonne redimensionnée sera la largeur de la cellule fusionnée divisée par le nombre de colonnes dans la région fusionnée.
: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")
Exemple
Par exemple, si le contenu a une largeur de 117 pixels et se trouve dans une région fusionnée qui s'étend sur 2 colonnes, appliquer l'ajustement automatique à l'une de ces colonnes entraînera une largeur de 59 pixels pour chaque colonne. La méthode AutoSizeColumn
doit être appliquée à chaque colonne individuellement.
Que se passe-t-il si la valeur est fixée à false ?
Lorsque la valeur est définie sur false, la méthode AutoSizeColumn
ajuste la largeur en fonction du contenu de la cellule ayant la plus grande largeur. Dans Microsoft Excel, lorsqu'une plage de cellules est fusionnée, seule la valeur en haut à gauche est conservée et le reste est effacé. Cependant, la méthode Merge d'IronXL N'efface PAS la valeur des autres cellules dans la région fusionnée.
: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 largeur des cellules fusionnées n'était pas prise en compte en priorité, ce qui n'entraînait aucune modification de la largeur, car la largeur de chaque colonne était calculée en fonction de la largeur de son contenu.
Les différences entre Excel et IronXL Auto Resize
Rangs
La fonction Excel autofit row height (ajustement automatique de la hauteur des lignes) applique un rembourrage visible en haut et en bas de la cellule.

Colonnes
La fonction d'ajustement automatique de la largeur des colonnes d'Excel applique également un remplissage à gauche et à droite de la cellule, mais il est moins visible.

Exemple de redimensionnement manuel de la hauteur et de la largeur
En plus de s'appuyer sur les méthodes AutoSizeRow
et AutoSizeColumn
pour calculer et ajuster la largeur et la hauteur du contenu, vous avez également la flexibilité de régler manuellement la largeur et la hauteur des colonnes et des lignes pour répondre à vos besoins spécifiques. Cela vous permet de les fixer à une certaine valeur qui correspond à vos besoins.
- Ajuster la hauteur : définissez la propriété Height de RangeRow.
- Ajuster la largeur : définissez la propriété Width du 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
Unités de hauteur et de largeur dans Excel
Les unités de mesure de la hauteur et de la largeur dans Excel sont différentes. Plus précisément, la hauteur est mesurée en 1/20 de point, tandis que la largeur est déterminée sur la base du nombre de "0" pouvant tenir dans une cellule en utilisant la police spécifiée dans le style "Normal".
Pour simplifier la conversion des unités, prenons la valeur en IronXL, qui correspond aux pixels d'affichage dans Microsoft Excel. Il est important de noter qu'un pixel ne représente pas un point physique sur l'écran ; elle est plutôt définie comme 1/96 de pouce, quelle que soit la résolution réelle de l'écran. Excel lui-même est conçu pour être indépendant de la résolution et ne dépend pas des pixels physiques.
Pour établir une relation entre les mesures de hauteur et de largeur d'IronXL et d'Excel, vous pouvez considérer les approximations suivantes :
- Hauteur : RangeRow.Height = 10 donnera une hauteur approximative de 1 pixel.
- Largeur : RangeColumn.Width = 23.255 correspondra à 1 pixel.