【问题标题】:.net c# excel column AutoFit.net c# excel列AutoFit
【发布时间】:2010-11-23 15:25:27
【问题描述】:

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

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

如何使 5 列大于此宽度?

【问题讨论】:

    标签: c# .net excel


    【解决方案1】:

    如果您希望使用 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;
    }
    

    -- 迈克

    【讨论】:

      【解决方案2】:

      假设您在单元格 A1 上并且其中有长文本,以下代码将使列自动调整,然后将宽度增加 5 个字符。

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

      【讨论】:

        【解决方案3】:

        尝试遍历你的行以获得它的文本长度:

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

        【讨论】:

          【解决方案4】:

          像这样尝试,

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-11-05
            • 1970-01-01
            • 2016-09-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多