c# – 为什么尝试自动调整工作表的宽度或该工作表上的单个列失败?

我有一个列的内容被截断,我想避免必须双击右栏排水沟才能看到数据.首先,我尝试自动调整整个shebang:

private void PopulatePivotTableDataSheet()
{
    if (null == _produceUsagePivotDataList) return;
    AddColumnHeadingRowPivotData();
    foreach (ProduceUsagePivotData pupd in _produceUsagePivotDataList)                
    {
        AddPivotData(pupd.ItemCode, pupd.ItemDescription, pupd.Unit, pupd.MonthYear, pupd.Quantity,
            pupd.TotalPrice, pupd.IsContractItem);
    }
    _xlPivotDataSheet.Cells.AutoFit();
}

…但最后一行失败,“Range类的AutoFit方法失败”

然后我尝试将它应用于所讨论的列,如下所示:

private void AddPivotData(String ItemCode, String ItemDescription, String Unit, String MonthYear, int Quantity, Decimal TotalPrice, Boolean IsContractItem)
{
    var itemCodeCell = _xlPivotDataSheet.Cells[_lastRowAddedPivotTableData + 1, 1];
    itemCodeCell.Value2 = ItemCode;

    var itemDescriptionCell = _xlPivotDataSheet.Cells[_lastRowAddedPivotTableData + 1, 2];
    itemDescriptionCell.Value2 = ItemDescription;
    itemDescriptionCell.AutoFitWidth(); 
    . . .

…并且最后一行失败,“’System .__ ComObject’不包含’AutoFitWidth’的定义”

Sam Hill o’豆子在这里发生了什么?自动调整应该很容易实现,不是吗?

最佳答案 这将AutoFit应用于包含范围的列:

_xlPivotDataSheet.Cells.EntireColumn.AutoFit();
点赞