C# Microsoft.Office.Interop.Excel.Worksheet.Cells[x,y]。样式?

C# Microsoft.Office.Interop.Excel.Worksheet.Cells[x,y]。样式?,c#,automation,export-to-excel,excel-interop,C#,Automation,Export To Excel,Excel Interop,我发现一些代码使用了Microsoft.Office.Interop.Excel.Worksheet.Cells[x,y]的样式属性,但它在我的Visual Studio代码编辑器中被视为一个对象: Workbook wb = new Application.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); Worksheet ws = wb.Sheets[1]; ws.Cells[x,y] is simply treated as an object

我发现一些代码使用了Microsoft.Office.Interop.Excel.Worksheet.Cells[x,y]的样式属性,但它在我的Visual Studio代码编辑器中被视为一个对象:

Workbook wb = new Application.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws = wb.Sheets[1];
ws.Cells[x,y] is simply treated as an object so how can I use its Style property?
我正在使用Microsoft Excel 15.0对象库(与Microsoft Office 2013配套)。那有关系吗


你能给我解释一下吗?谢谢。

您必须将对象强制转换为
范围

范围接口/对象包含所指定单元格或范围的所有样式和值信息

一些例子:

((Excel.Range)ws.Cells[r, c]).NumberFormat = format;
((Excel.Range)ws.Cells[r, c]).Value2 = cellVal;
((Excel.Range)ws.Cells[r, c]).Interior.Color = ColorTranslator.ToOle(Color.Red);
((Excel.Range)ws.Cells[r, c]).Style.Name = "Normal"
等等等等

有一个链接:

您可能还想在导出到excel时查看其中包含单元格格式的内容。

可能该代码使用的是
动态
。听起来很有趣,请给我一些关于“动态”的示例(或链接),谢谢。@code谢谢,您的链接让我想到谷歌更多,但有时我想在这里问一下,懒散一段时间仅仅是因为我现在真的不想钻研新的东西。C#3.5还有许多我还没有体验过的特性。非常感谢。或者,如果不更改位置,可以先将结果指定给范围对象<代码>范围needRange=ws.Cells[r,c]然后使用范围方法。它使代码读起来更清晰,这就是我编写Excel报告的方式。没错,我从一个接口中获取了示例,其中r、c和其他一些参数(取决于函数)从另一个引擎传递进来。所以每一行都有一个不同的函数:-)。如果要在放弃或重新分配之前将同一范围重新用于多个不同的对象,请强制转换为范围并将其分配给自己的范围变量。谢谢,我尝试在Microsoft.Office.Interop.Excel命名空间中查找单元格类型,但它不存在。可能范围不仅是一组细胞,而且是一个特定的细胞。但你们知道为什么互联网上的一些代码可以直接在单元格[x,y]上访问,就好像它是一种不需要先强制转换的范围类型一样吗?谢谢你的帮助。CodesInChaos称之为“动态”变量。这是我能想到的唯一原因,在访问非常明显是范围属性的内容之前,他们不需要回溯到某个范围。谢谢,这正是仅在Visual 2010或更高版本中使用的动态样式,虽然我的笔记本电脑安装了Visual2010Ultimate和Visual2012,但我正在用Visual2008测试代码。