.NET C#自动调整Excel列宽

15

我正在使用C#处理Excel对象。我想自动调整列宽,但是要这样:我希望列的宽度比AutoFit方法设置的宽度多5个。

如何在使用AutoFit()后获取列宽?

如何使列的宽度比自动调整后的宽度大5个?

4个回答

29

如果你想使用Selection对象并启用早期绑定的智能感知,你需要先将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;
}

-- 麦克


5
假设您在单元格A1中有一段长文本,以下代码将使列自适应并将宽度增加5个字符。
Selection.Columns.Autofit
Selection.Columns(1).ColumnWidth = Selection.Columns(1).ColumnWidth + 5

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接