Comment redimensionner automatiquement les lignes et les colonnes ?

This article was translated from English: Does it need improvement?
Translated
View the article in English

par Chaknith Bin

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 IronXL C# permet 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.

Bibliothèque NuGet C# pour Excel

Installer avec NuGet

Install-Package IronXL.Excel
ou
Java PDF JAR

Télécharger DLL

Télécharger la DLL

Installation manuelle dans votre projet

Bibliothèque NuGet C# pour Excel

Installer avec NuGet

Install-Package IronXL.Excel
ou
Java PDF JAR

Télécharger DLL

Télécharger la DLL

Installation manuelle dans votre projet

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

Première étape :
green arrow pointer

Découvrez IronXL sur NuGet pour une installation rapide et un déploiement facile. Avec plus de 8 millions de téléchargements, il transforme Excel avec C#.

Bibliothèque NuGet C# pour Excel nuget.org/packages/IronXL.Excel/
Install-Package IronXL.Excel

Envisagez d'installer le IronXL DLL directement. Téléchargez et installez-le manuellement pour votre projet ou sous forme de GAC : {{lienDllAfficher}}

Installation manuelle dans votre projet

Télécharger la DLL

Redimensionnement automatique des lignes Exemple

La méthode AutoSizeRow redimensionne automatiquement la hauteur d'une ligne spécifiée(s) en fonction de son 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")
VB   C#

Démonstration

Redimensionnement automatique des lignes

Exemple de redimensionnement automatique des colonnes

Utiliser la méthode AutoSizeColumn pour redimensionner la largeur de la colonne(s) en fonction de la longueur de son 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")
VB   C#

Démonstration

Redimensionnement 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 second paramètre sous la forme d'une valeur Booléenne. Si la valeur est vrai, 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")
VB   C#

Exemple

Par exemple, supposons que le contenu ait une hauteur de 192 pixels et se trouve dans une région fusionnée qui s'étend sur 3 lignes. Lors de l'application de l'autosize à 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 fixée à false, la méthode AutoSizeRow ajuste la hauteur de la ligne en fonction du contenu de la cellule ayant la hauteur la plus élevée. Dans Microsoft Excel, lorsqu'une plage de cellules est fusionnée, elle ne conserve que la valeur de la cellule supérieure gauche et efface le reste. Cependant, avec IronXL, la valeur de la cellule supérieure gauche est supprimée Fusionner est effectuée sans effacer les valeurs des autres cellules de 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)
VB   C#
Advance Auto Resize Row

À des fins de démonstration, j'ai ajusté manuellement la hauteur des lignes au lieu d'utiliser la fonction Excel fonction de hauteur de rangée autofit. 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

Comme pour AutoSizeRow, vous pouvez également faire en sorte que le redimensionnement des colonnes prenne en compte la largeur des cellules fusionnées. Si la valeur est vrai, 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")
VB   C#

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, l'application de la fonction autosize à l'une de ces colonnes se traduira par une largeur de 59 pixels pour chaque colonne. La méthode AutoSizeColumn doit être appliquée à chaque colonne individuellement.

Advance Auto Resize Column

Que se passe-t-il si la valeur est fixée à false ?

Lorsque la valeur est 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 supérieure gauche est conservée et le reste est effacé. Cependant, l'option IronXL Fusionner n'efface PAS la valeur des autres cellules de 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)
VB   C#
Advance Auto Resize Column

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

Outre les méthodes AutoSizeRow et AutoSizeColumn qui calculent et ajustent la largeur et la hauteur du contenu, vous avez également la possibilité d'ajuster 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.

  • Ajustez la hauteur : définissez la propriété Height de la RangeRow.
  • Ajustez la largeur : définissez la propriété Width de la 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
VB   C#

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.
  • Width : RangeColumn.Width = 23.255 correspondra à 1 pixel.

Chaknith Bin

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.