提问人:yoyoyoyosef 提问时间:10/7/2008 最后编辑:pnutsyoyoyoyosef 更新时间:9/11/2015 访问量:13735
用于学习 c# Excel 互操作的资源 [已关闭]
Resources for learning c# Excel interop [closed]
问:
要求我们推荐或查找工具、库或最喜欢的场外资源的问题与 Stack Overflow 无关,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,描述问题以及迄今为止为解决该问题所做的工作。
10年前关闭。
有哪些资源可以帮助我在 C# 中快速启动和运行 Excel 互操作?
答:
这是一篇不错的文章,其中包含一些有用的示例。
MSDN 拥有丰富的信息...
http://msdn.microsoft.com/en-us/library/ms173186(VS.80).aspx
MSDN 总是值得一读。
评论
如果您想学习 Excel 对象模型,VBA 帮助非常好。
您可以使用“主互操作程序集”来处理 Excel
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**);
我希望这会有所帮助。
评论
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...
您可以通过记录宏(在 Excel 中)并分析发生的事情来学到很多东西。
我的主要编程语言是 C#,但为了与 Excel(或其他 Office/COM 对象)进行通信,我总是使用 VB.Net。这样可以更轻松地从 VBA(录制)传输到 .Net。
VB.Net 使后期绑定更容易使用。首先,我使用早期绑定(为我获取 Intellisense),然后将类型更改为 Object,因此我不再依赖于特定版本的 Office。
评论