我目前正在写关于动态类型的,我给出了一个Excel互操作的例子。我之前几乎没有做任何Office互操作,并且它显示。 C#4的MSDN Office Interop tutorial接口使用_Worksheet
接口,但也有一个接口Worksheet
。我不知道有什么区别。Excel互操作:_Worksheet或Worksheet?
在我的荒谬简单的演示应用程序(如下所示)或者正常工作 - 但如果最佳实践指示一个或另一个,我宁愿适当地使用它。
using System;
using System.Linq;
using Excel = Microsoft.Office.Interop.Excel;
class DynamicExcel
{
static void Main()
{
var app = new Excel.Application { Visible = true };
app.Workbooks.Add();
// Can use Excel._Worksheet instead here. Which is better?
Excel.Worksheet workSheet = app.ActiveSheet;
Excel.Range start = workSheet.Cells[1, 1];
Excel.Range end = workSheet.Cells[1, 20];
workSheet.get_Range(start, end).Value2 = Enumerable.Range(1, 20)
.ToArray();
}
}
我试图避免做了充分的深入了解COM或Office互操作性,只是突出了C#4的新功能 - 但我不想做任何事情真的,真的很愚蠢。
(在上面的代码中可能有一些确实是愚蠢的,在这种情况下请让我知道。使用单独的开始/结束单元而不是“A1:T1”是故意的 - 很容易看到它真的是一个20单元的范围,其他的可能是偶然的)
那么,我应该使用_Worksheet
还是Worksheet
,为什么?
乔恩,除了优秀的答案在这里被赋予,我会补充一点,一般来说,通过interop使用Excel时,请使用类名,因为它通常出现在Excel中。这意味着使用'Worksheet'而不是'_Worksheet',并使用'Application'而不是'ApplicationClass'。 (此处的讨论解释了为什么不使用'ApplicationClass':http://blogs.msdn.com/ptorr/archive/2004/02/05/67872.aspx。)如果您不熟悉Excel对象模型为暴露给COM,那么这可能会更棘手,但我认为大部分时间应该是非常清楚的。 – 2009-06-27 01:00:28
幸运的是,我在Office上做的*很少,实际上只是试图展示这些新功能。非常感谢链接 - 非常有帮助! – 2009-06-27 05:47:10
对不起,但不得不提问 - 您强调的是C#4的新功能是什么? – Oskar 2009-07-09 15:40:49