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()