Comment redimensionner automatiquement les lignes et les colonnes ?

Chaknith related to Comment redimensionner automatiquement les lignes et les colonnes ?
Chaknith Bin
mars 26, 2023
Mise à jour décembre 10, 2024
Partager:
This article was translated from English: Does it need improvement?
Translated
View the article in English

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.

Commencez avec IronXL

Commencez à utiliser IronXL dans votre projet dès aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer


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")
$vbLabelText   $csharpLabel

Démonstration

Redimensionnement automatique des lignes

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")
$vbLabelText   $csharpLabel

Démonstration

Réglage automatique des colonnes

Conseils
Toutes les positions d'indexation des lignes et des colonnes suivent l'indexation basée sur le zéro.


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")
$vbLabelText   $csharpLabel

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.

Advance Auto Resize Row

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)
$vbLabelText   $csharpLabel
Redimensionnement automatique avancé de ligne

À 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")
$vbLabelText   $csharpLabel

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.

Redimensionnement automatique avancé de la colonne

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)
$vbLabelText   $csharpLabel
Redimensionnement automatique avancé des colonnes

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.

Comparaison entre Excel et IronXL pour le redimensionnement des lignes

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.

Comparaison entre Excel et IronXL pour le redimensionnement des colonnes

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
$vbLabelText   $csharpLabel

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.
Chaknith related to Unités de hauteur et de largeur dans Excel
Ingénieur logiciel
Chaknith est le Sherlock Holmes des développeurs. C'est en s'amusant à relever des défis de code qu'il s'est rendu compte pour la première fois qu'il pourrait avoir un avenir dans le domaine de l'ingénierie logicielle. Il se concentre sur IronXL et IronBarcode, mais il est fier d'aider les clients avec chaque produit. Chaknith tire parti des connaissances qu'il a acquises en discutant directement avec les clients pour améliorer les produits eux-mêmes. Ses commentaires anecdotiques vont au-delà des tickets Jira et soutiennent le développement de produits, la documentation et le marketing, afin d'améliorer l'expérience globale des clients.Quand il n'est pas au bureau, on peut le trouver en train d'apprendre sur l'apprentissage automatique, le codage et la randonnée.