VS2010中的Excel自动化

时间:2011-09-09 11:10:02

标签: vb.net excel ms-office

我知道已有数百万篇关于此的帖子,但我似乎无法找到一个反映我的问题的帖子。

我正在使用VS2010并希望自动化excel,我正在尝试通过此处的示例。

MS Tutorial

问题是当我按照提到的方式添加引用时

  

3.添加对Microsoft Excel对象库的引用。为此,请按照下列步骤操作:?在“项目”菜单上,单击“添加引用”。   •在“COM”选项卡上,找到“Microsoft Excel对象库”,然后单击“选择”。

没有这样的参考资料。

有人可以告诉我这是否是使用VS2010实现Excel自动化的正确方法。

如果有人可以请告诉我为什么我没有excel的COM选项。

我想在VB.net中写,但如果有人在C#中有一个例子就可以了。

亲切的问候

我尝试使用Microsoft.Office.Interop.Excel.Application dll实现自动化,但在尝试创建excel应用程序时出现以下异常。

此行生成错误。

EXL = New Microsoft.Office.Interop.Excel.Application()

这是例外

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

1 个答案:

答案 0 :(得分:1)

如果您的计算机上安装了Office 2010但仍未在COM选项卡中看到它,那么您安装64位版本的Office的可能性是合理的。 Visual Studio是一个32位程序,它无法查看64位COM服务器的注册表项。

变通方法是使用主互操作程序集,它应该安装在您的计算机上。使用.NET选项卡,然后选择Microsoft.Office.Interop.Excel。下一个选项是直接导入类型库。使用“浏览”选项卡并导航到c:\ program files \ microsoft office \ office14并选择excel.exe。将添加的引用的Copy Local属性设置为True,以避免必须将PIA部署到目标计算机。

还要确保您的应用可以作为64位进程运行。在使用Project + Properties,Compile选项卡,向下滚动,Advanced Compile Options选择的vb.net中,将Target CPU设置为“AnyCPU”。