[C#] EPPlus의 자동 열 너비

열의 텍스트가 길 때 열을 자동 너비로 만드는 방법은 무엇입니까?

이 코드를 사용합니다

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

이 방법들 중 어느 것도 작동하지 않습니다

작동시키는 방법이 있습니까?

참고 : 일부 텍스트는 유니 코드를 사용합니다.



답변

사용 AutoFitColumns하지만 셀을 지정해야합니다. 전체 워크 시트를 가정합니다.

VB.NET

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

씨#

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

워크 시트를 작성한 후이 메소드를 호출해야합니다.


답변

이 코드를 EPPlus 버전 3.1.3.0과 함께 사용했으며 작동 중입니다.

worksheet.Column(1).AutoFit();

여기서 워크 시트는 코드에서 만든 워크 시트를 참조하는 변수입니다 (정적 메서드가있는 클래스가 아닙니다!).

열을 채운 후에는이 메소드호출 해야합니다 .


답변

나는 이것이 오래된 질문이라는 것을 알고 있지만 아래 코드를 사용하며 시도한 것을 직접 다루는 것 같습니다.

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


답변

범위를 지정하지 않고 셀을 맞출 수 있다는 것을 지적하고 싶었습니다. 모든 열 등을 형식화 한 후에 이것을 호출하십시오.

worksheet.Cells.AutoFitColumns()


답변

나는 조금 늦었다는 것을 알고 있지만 오늘도 같은 문제가있었습니다. worksheet.DefaultColWidth정의 된 경우 작동하지 않습니다. 해당 줄을 제거하고 추가 Worksheet.cells.AutoFitColumns();했으며 이제 작동합니다.


답변

그것은 나를 위해 잘 작동합니다.

시험:

ExcelWorksheet wsSheet1 = ExcelPkg.Workbook.Worksheets.Add("Sheet1");
wsSheet1.Cells[wsSheet1.Dimension.Address].AutoFitColumns();
ExcelPkg.SaveAs();


답변

worksheet.Column(1).AutoFit(0);AutoFit () 을 사용 하여 트릭을 수행하지 않았습니다.