2011-09-09 45 views
0

我知道已经有数百万篇关于这方面的文章,但是我似乎找不到能够反映我的问题的文章。VS2010中的Excel自动化

我正在使用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

Excel是否安装在您的电脑上?哪个版本? – Fionnuala

+1

您需要在安装Excel时指定这些库的安装,而不是Visual Studio。 – jonsca

+0

我在我的机器上安装了Excel 2010。我需要下载一些额外的文件吗?这些文件是否需要通过我制作的程序进行分发? – user589195

回答

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选项卡选择的vb.net中,向下滚动Advanced Compile Options,将Target CPU设置为“AnyCPU”。

+0

在COM选项卡下,我有一个选项添加“微软Office 14.0对象库”这是我应该看的对于? – user589195

+0

不可以。那么,您是否拥有64位版本的Office?你有没有按照我关于设置目标CPU选项的建议? –

+0

我已经设置了CPu,但仍无法看到Microsoft Excel对象库。据我所知,我没有64位版本......但我确实有学生和家庭版。不知道这是否会有所作为。 – user589195