我正在使用c#中的excel对象。我想自动调整列,但是像这样:我希望列的宽度比AutoFit方法设置的大5。
如何在使用AutoFit()后获得宽度?
如何使列5大于此宽度?
答案 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();