有哪些资源可以帮助我在C#中快速地使用Excel互操作性?
这篇由Ken Getz撰写的文章,从Visual Studio 2005开发人员的角度理解Excel对象模型,详细介绍了Excel对象模型。其中代码示例为VB.NET和C#。
一些重要的注意点也在Ken Getz撰写的《C#和VBA:像油和水一样》中介绍。
同时建议查看如何使用Visual C# .NET构建Office COM添加程序文章。
希望对你有所帮助...
1) 首先,从Office Interop Assemblies下载程序集,你将从中访问Excel互操作的所有对象、属性和方法以及适当的引用到你的项目。 请注意:任何你打算在其上运行代码的机器也需要安装这些程序集。你可以将它们包含在你的安装包中,或者它们随.NET Framework 1.1一起提供,所以如果你的客户已经安装了它,他们可能已经拥有了互操作程序集。
2) MSDN上有大量的知识...几乎所有你将使用的对象和方法都会在那里得到很好的记录。
3) 注意:使用C#与Interop的一个奇怪的小问题是,你必须手动提供Interop调用中的“缺失”引用...即使在VBA中使用函数(如果你习惯于这样做),如果该方法调用需要3个参数,并且最后两个参数是可选的,则可以在VBA中“省略它们”(例如:MyMethod argumentOne)...但在.NET中不起作用,这是我开始使用Interop程序集时困惑了我一段时间的唯一一件事情;你必须像下面这样手动创建一个缺失的对象(示例来自Word Interop,但同样适用于Excel或任何其他office Interop包(你还必须将一些参数装箱并通过引用传递):
object missing = System.Reflection.Missing.Value;
string somestring = "string";
object refstring = (object)s;
wrd.Selection.Hyperlinks.Add(wrd.Selection.Range, **ref refstring, ref missing, ref missing, ref missing, ref missing**);
如果您想学习Excel对象模型,VBA帮助文档是相当不错的。
您可以使用“主要互操作程序集”来处理Excel。
通过记录宏(在Excel中),并分析所发生的事情,您可以学到很多东西。
我的主要编程语言是C#,但对于我与Excel(或其他Office/COM对象)的通信,我总是使用VB.Net。这使得从VBA(记录的)转换到.Net更容易。
VB.Net使得使用后期绑定更加容易。首先我使用早期绑定(获得智能感知),然后我将我的类型更改为Object,这样我就不再依赖于特定版本的Office了。