.net c#excel列AutoFit

时间:2009-08-28 06:46:13

标签: c# .net excel

我正在使用c#中的excel对象。我想自动调整列,但是像这样:我希望列的宽度比AutoFit方法设置的大5。

如何在使用AutoFit()后获得宽度?

如何使列5大于此宽度?

4 个答案:

答案 0 :(得分:27)

如果您希望使用Selection对象并使IntelliSense具有早期绑定,则需要首先将Selection对象强制转换为Range:

Excel.Range selectedRange = (Excel.Range)myExcelApp.Selection;    
selectedRange.Columns.AutoFit();

foreach (Excel.Range column in selectedRange.Columns)
{
    column.ColumnWidth = (double)column.ColumnWidth + 5;
}

- 迈克

答案 1 :(得分:4)

假设您正在使用A1和A1在其中包含长文本,下面的代码将使列自动调整,然后将宽度增加5个字符。

Selection.Columns.Autofit
Selection.Columns(1).ColumnWidth = Selection.Columns(1).ColumnWidth + 5

答案 2 :(得分:1)

尝试循环遍历行以获取文本长度:

var row = 1;
ws.Column(1).AutoFit(ws.Cells[row, 1].Text.Length + 5);

ws 是您的工作表:

var pck = new ExcelPackage();
var ws = pck.Workbook.Worksheets.Add("Plan1")

答案 3 :(得分:0)

尝试这样,

ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Sheet1");

//Load the datatable into the sheet, starting from cell A1. Print the column names on row 1
ws.Cells["A1"].LoadFromDataTable(data_table, true);

//Set full Sheet Auto Fit
ws.Cells[1, 1, data_table.Rows.Count, data_table.Columns.Count].AutoFitColumns();