Largeur de colonne automatique dans EPPlus

Comment rendre les colonnes à largeur automatique lorsque les textes en colonnes sont longs?

J’utilise ce code

Worksheet.Column(colIndex).AutoFitColumn() 'on all columns' Worksheet.cells.AutoFitColumns() Worksheet.Column(colIndex).BestFit = True 'on all columns' 

Aucune de ces méthodes ne fonctionne

Y a-t-il des moyens de le faire fonctionner?

Note: Certains de mes textes utilisent Unicode.

Utilisez AutoFitColumns , mais vous devez spécifier les cellules, je suppose la feuille de calcul entière:

VB.NET

 Worksheet.Cells(Worksheet.Dimension.Address).AutoFitColumns() 

C #

 Worksheet.Cells[Worksheet.Dimension.Address].AutoFitColumns(); 

Veuillez noter que vous devez appeler cette méthode après avoir rempli la feuille de travail.

J’ai utilisé ce code avec la version 3.1.3.0 de EPPlus et cela fonctionne:

 worksheet.Column(1).AutoFit(); 

où feuille de calcul est la variable faisant référence à la feuille de calcul que j’ai créée dans mon code (pas une classe avec une méthode statique!).

De toute évidence, vous devez appeler cette méthode après avoir rempli les colonnes .

Je sais que c’est une vieille question, mais j’utilise le code ci-dessous et cela semble répondre directement à ce que vous avez essayé de faire.

 using (var xls = new ExcelPackage()) { var ws = xls.Workbook.Worksheets.Add("Some Name"); //**Add Column Names to worksheet!** //**Add data to worksheet!** const double minWidth = 0.00; const double maxWidth = 50.00; ws.Cells.AutoFitColumns(minWidth, maxWidth); return pkg.GetAsByteArray(); } 

Je sais que c’est un peu tard mais j’ai le même problème aujourd’hui. Si vous avez une worksheet.DefaultColWidth définie, cela ne fonctionnera pas. J’ai supprimé cette ligne et ajouté Worksheet.cells.AutoFitColumns(); et ça marche maintenant.

Vous devrez calculer la largeur. Il n’y a pas de fonction de redimensionnement automatique dans la bibliothèque qui fonctionnera comme prévu.

Autofitcolumn ne fonctionnera pas avec du texte encapsulé et des cellules contenant des formules.

Regardez http://epplus.codeplex.com/discussions/218294?ProjectName=epplus pour des exemples de la façon dont vous pouvez résoudre le problème.

Je l’utilise et ça marche très bien:

ExcelWorksheet wsSheet1 = ExcelPkg.Workbook.Worksheets.Add (“Sheet1”);

wsSheet1.Cells[wsSheet1.Dimension.Address].AutoFitColumns();

ExcelPkg.SaveAs ();

J’ai dû utiliser worksheet.Column(1).AutoFit(0); AutoFit () ne faisait pas l’affaire.

Je l’utilise et fonctionne bien.

 Dim objExcel As New ExcelPackage Dim Sheet As ExcelWorksheet = objExcel.Workbook.Worksheets.Add("SheetName") Sheet.Cells("B1:BN").AutoFitColumns()