学习C# Excel互操作的资源

24

有哪些资源可以帮助我在C#中快速地使用Excel互操作性?


1
自从这个问题被提出以来,情况已经变得更容易了。以下是一个更新的链接:使用Visual C# 2010功能访问Office Interop对象 - Tod
7个回答

11

7

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

我希望这能够帮到您。
(Translated: I hope this can help you.)

如果您能,请在这里帮忙:https://dev59.com/SWkw5IYBdhLWcg3wV5ID - Alex Gordon

2

如果您想学习Excel对象模型,VBA帮助文档是相当不错的。

您可以使用“主要互操作程序集”来处理Excel。


1

1

MSDN 总是值得一读。


如果您能,请在这里帮忙:https://dev59.com/SWkw5IYBdhLWcg3wV5ID - Alex Gordon

1

通过记录宏(在Excel中),并分析所发生的事情,您可以学到很多东西。

我的主要编程语言是C#,但对于我与Excel(或其他Office/COM对象)的通信,我总是使用VB.Net。这使得从VBA(记录的)转换到.Net更容易。

VB.Net使得使用后期绑定更加容易。首先我使用早期绑定(获得智能感知),然后我将我的类型更改为Object,这样我就不再依赖于特定版本的Office了。


请帮忙:https://dev59.com/SWkw5IYBdhLWcg3wV5ID - Alex Gordon

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接