用于学习 c# Excel 互操作的资源 [已关闭]

Resources for learning c# Excel interop [closed]

提问人:yoyoyoyosef 提问时间:10/7/2008 最后编辑:pnutsyoyoyoyosef 更新时间:9/11/2015 访问量:13735

问:


要求我们推荐或查找工具、库或最喜欢的场外资源的问题与 Stack Overflow 无关,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,描述问题以及迄今为止为解决该问题所做的工作。

10年前关闭。

有哪些资源可以帮助我在 C# 中快速启动和运行 Excel 互操作?

C# Excel 资源 互操作

评论

1赞 Tod 1/6/2012
自从提出这个问题以来,事情变得容易了。下面是最近的链接:使用 Visual C# 2010 功能访问 Office 互操作对象

答:

1赞 Ben Hoffstein 10/7/2008 #1

这是一篇不错的文章,其中包含一些有用的示例。

0赞 theraccoonbear 10/7/2008 #2

MSDN 拥有丰富的信息...

http://msdn.microsoft.com/en-us/library/ms173186(VS.80).aspx

1赞 Ben Hoffstein 10/7/2008 #3

MSDN 总是值得一读。

评论

0赞 Alex Gordon 4/2/2012
如果你能 stackoverflow.com/questions/9962157/,请在这里帮忙......
2赞 shahkalpesh #4

如果您想学习 Excel 对象模型,VBA 帮助非常好。

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

7赞 BKimmel 10/7/2008 #5

1)第一件事;下载 Office 互操作程序集,从中可以访问 Excel 互操作工具中的所有对象、属性和方法,以及对项目的相应引用。请注意:要在其上运行代码的任何计算机也需要安装这些程序集。您可以将它们包含在安装包中,也可以将它们包含在 .NET Framework 1.1 中,因此,如果您的客户端安装了该安装,它们可能会具有互操作程序集。

2) MSDN 上有丰富的知识...您将使用的几乎所有对象和方法都将在那里得到很好的记录。

3) 注意:使用 C# 互操作的一个奇怪的小事情是,您必须手动为互操作调用提供“缺失”的引用......即,在 VBA 中使用函数时(如果您习惯于这样做),如果该方法需要 3 个参数并且最后两个是可选的,您可以在 VBA 中“省略它们”(即 MyMethod argumentOne)......这在 .NET 中不起作用,这是我开始使用 Interop 程序集时让我困惑了一段时间的一件事;您必须手动创建一个缺少的对象,例如来自 Word Interop,但相同的主体适用于 Excel 或任何其他 Office Interop 包(并且您还必须将一些参数装箱并通过 ref 传递它们,如下所示):

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

我希望这会有所帮助。

评论

0赞 Alex Gordon 4/2/2012
如果你能 stackoverflow.com/questions/9962157/,请在这里帮忙......
11赞 Mike Rosenblum 10/8/2008 #6

Ken Getz 撰写的文章 Understanding the Excel Object Model from a Visual Studio 2005 Developer's Perspective 详细介绍了 Excel 对象模型。代码示例有 VB.NET 和 C# 两种语言。

Ken Getz 在 C# 和 VBA: Like Oil and Water 中介绍了一些重要的注意事项。

我还会看到文章:如何使用 Visual C# .NET 生成 Office COM 加载项

HTH...

1赞 GvS 10/8/2008 #7

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

我的主要编程语言是 C#,但为了与 Excel(或其他 Office/COM 对象)进行通信,我总是使用 VB.Net。这样可以更轻松地从 VBA(录制)传输到 .Net。

VB.Net 使后期绑定更容易使用。首先,我使用早期绑定(为我获取 Intellisense),然后将类型更改为 Object,因此我不再依赖于特定版本的 Office。

评论

0赞 Alex Gordon 4/2/2012
请帮忙 stackoverflow.com/questions/9962157/...