【发布时间】:2010-11-23 15:25:27
【问题描述】:
我正在使用 c# 中的 excel 对象。我想自动调整列,但像这样:我希望列的宽度比 AutoFit 方法设置的宽度大 5。
使用 AutoFit() 后如何获取宽度?
如何使 5 列大于此宽度?
【问题讨论】:
我正在使用 c# 中的 excel 对象。我想自动调整列,但像这样:我希望列的宽度比 AutoFit 方法设置的宽度大 5。
使用 AutoFit() 后如何获取宽度?
如何使 5 列大于此宽度?
【问题讨论】:
如果您希望使用 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;
}
-- 迈克
【讨论】:
假设您在单元格 A1 上并且其中有长文本,以下代码将使列自动调整,然后将宽度增加 5 个字符。
Selection.Columns.Autofit
Selection.Columns(1).ColumnWidth = Selection.Columns(1).ColumnWidth + 5
【讨论】:
尝试遍历你的行以获得它的文本长度:
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")
【讨论】:
像这样尝试,
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();
【讨论】: