148

列内のテキストが長い場合に列を自動幅にする方法は?

私はこのコードを使用します

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

これらの方法はどれも機能していません

それを機能させる方法はありますか?

注: 一部のテキストでは Unicode を使用しています。

4

10 に答える 10

273

を使用AutoFitColumnsしますが、セルを指定する必要があります。ワークシート全体を想定しています。

VB.NET

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

C#

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

ワークシートに入力した後、このメソッドを呼び出す必要があることに注意してください。

于 2013-03-26T17:00:10.393 に答える
44

EPPlus のバージョン 3.1.3.0 でこのコードを使用しましたが、動作しています。

worksheet.Column(1).AutoFit();

ワークシートは、コードで作成したワークシートを参照する変数です (静的メソッドを持つクラスではありません!)。

明らかに、列を埋めた後にこのメソッドを呼び出す必要があります

于 2013-05-28T15:52:08.910 に答える
11

少し遅れていることはわかっていますが、今日も同じ問題がありました。が定義されている場合worksheet.DefaultColWidth、それは機能しません。その行を削除して追加Worksheet.cells.AutoFitColumns();したところ、現在は機能しています。

于 2015-09-18T10:18:45.167 に答える
3

幅を計算する必要があります。ライブラリには、意図したとおりに機能する自動サイズ調整機能はありません。

Autofitcolumn は、折り返されたテキストと数式を含むセルでは機能しません。

問題を解決する方法の例については、http://epplus.codeplex.com/discussions/218294 ?ProjectName=epplus を参照してください。

于 2013-03-26T17:03:03.137 に答える
3

worksheet.Column(1).AutoFit(0);AutoFit()を使用する必要がありましたが、うまくいきませんでした。

于 2013-07-23T07:09:24.497 に答える
1

私はこれを使用し、うまく機能しています。

Dim objExcel As New ExcelPackage
Dim Sheet As ExcelWorksheet = objExcel.Workbook.Worksheets.Add("SheetName")
Sheet.Cells("B1:BN").AutoFitColumns()
于 2013-12-05T20:21:11.060 に答える