无法使用columnwidth excel属性

时间:2014-01-27 04:40:28

标签: c# excel properties

我正在尝试在Excel中设置一个或几个单元格的宽度。

这是我的代码

Microsoft.Office.Interop.Excel.Application xla = new    
      Microsoft.Office.Interop.Excel.Application();
Workbook wb = xla.Workbooks.Add(XlSheetType.xlWorksheet);
Worksheet ws = (Worksheet)xla.ActiveSheet;

我知道我是否要更改整列宽度

ws.Columns.ColumnWidth = 30;
ws.Cells.ColumnWidth = 30;

但是当我尝试使用以下代码更改特定列时

ws.Columns[5].ColumnWidth = 30; 
*//or* 
ws.Cells [5, 5].ColumnWidth = 30;
**//or* 
ws.Columns["E:E"].ColumnWidth = 30;

属性ColumnWidth无法使用
在我输入colums [5]之后的列表中,然后点只显示'Equals,GetHahCode,Gettype,ToString' 当我尝试手动输入它 它给出错误'没有方法重载'这个'需要'1'参数'

我使用了visual studio 2010和framework 4.0 我不知道我错过了什么......

3 个答案:

答案 0 :(得分:1)

您可以使用MS-Office宏来获取所需的代码段。

例如,我运行一个简单的宏,然后更改收藏列的宽度,最后停止宏以查看此操作的VB代码。

当您要在Ms-Office产品中执行非常复杂的任务时,这非常有用。

Sub Macro1()
'
' Macro1 Macro
'

'
    Columns("J:J").ColumnWidth = 22.5
End Sub

上面的宏用于设置列J的宽度

答案 1 :(得分:1)

您可能正在使用目标框架为.Net framework 3.5或更低版本。将其更改为.Net Framework 4.0,它将正常工作。此动态属性仅存在于Framework 4.0中。要更改框架,请右键单击解决方案资源管理器上的项目。单击属性并使用下拉列表将目标框架的值设置为.NET framework 4.0。这绝对有用。如果它对您不起作用,请尝试告诉我。

答案 2 :(得分:0)

@Katik:我可以使用此

更改列宽

ws.Columns[5].ColumnWidth = 17.57;

如果您在使用上述声明时告诉我们您看到了什么样的错误或哪种行为改变,我们可能会提供帮助。