在.NET中使用Microsoft.Office.Interop.Excel需要什么参考?


101

我对使用C#操纵/自动化Excel文件感兴趣。

浏览完网络后,我发现了VSTO,但看来您不能在Visual Studio Express Edition中使用它,所以我不能使用它。

几分钟前,我注意到该站点中的一个问题在其代码中使用了该命名空间:

Microsoft.Office.Interop.Excel

所以我想知道是否我需要使用的只是添加必要的参考,如果需要添加哪个参考?

更新

我按照建议的答案安装了“主互操作程序集”,但由于某些原因,它们仍然在“ .NET”下的“添加引用”对话框中丢失,但它们存在于GAC中。

因此,我只是使用“浏览”添加了引用,该引用位于Microsoft.Office.Interop.Excel.dllGAC文件夹中。

但是在此站点上寻找有关添加GAC参考的类似问题,似乎不建议这样做。

Answers:


101

更新(感谢user2347528)

这些程序集以NuGet包的形式提供,比我的原始答案要容易得多。

您可以通过右键单击项目中的“ 引用”并选择“ 管理NuGet软件包...”并搜索下面列出的软件包之一进行安装,或使用“软件包管理器控制台”进行安装:

PM> Install-Package Microsoft.Office.Interop.Excel

这些可以作为“主互操作程序集”获得,可以与Office一起安装,也可以单独下载和安装。如何:安装Office主要互操作程序集

安装这些文件后,您可以在项目中的.NET下的“添加引用”对话框中对其进行引用。如果您没有看到列出的那些Microsoft.Office.Interop程序集,则说明它们尚未安装。从您的设置中安装它们,或者单独下载并安装它们(下载请参见上面的我的链接)。


我在名为“ Microsoft Office”的“ Com”选项卡中找到了一堆组件。...是吗?
user850010'5

1
这些是Visual Studio可以为其生成.NET互操作程序集的COM服务。不建议您使用这些。您应该使用Microsoft发布的PIA程序集。它们应显示在“添加引用”对话框的“ .NET”选项卡中。如果看不到它们,则需要从Office安装程序中安装PIA或单独下载它们,如我在答案中所链接的那样。
moribvndvs 2012年

2
@HackedByChinese我在“添加引用”对话框

1
在Visual Studio 2013中,我在“添加引用”窗口的左侧菜单中的“程序集”->“扩展名”下找到了这些引用。
本杰明·雷

1
我正在尝试在Windows 2012服务器上安装使用Microsoft.Office.Interop.Excel.dll的C#程序。该程序可以在Windows 7 PC上正常运行,但是即使在服务器上安装了PIA之后,我仍然收到有关System.Runtime.Interop.COM组件丢失的错误消息。当我尝试实例化Excel.Application()对象时,程序中断。还有什么我想念的吗?
梅勒妮

50

我自己只是遇到了这个问题,接受的答案并没有帮助我,但我通过以下方法解决了问题:

Add reference > Browse > C: > Windows > assembly > GAC > Microsoft.Office.Interop.Excel > 12.0.0.0_etc > Microsoft.Office.Interop.Excel.dll


2
我一直在寻找这种解决方案。
Karim O.

3
谢谢你的提示。具有讽刺意味的是,Microsoft本身无法可靠地完成此工作-2014年,我们仍然直接引用.dlls
Mike Honey

12
Add Reference-> COM-> Microsoft Excel 12.0 Object Library一样。
2015年

在服务器上工作吗?没有在服务器上安装Office?
Naveen Katakam

好,谢谢。你有什么主意吗?我可以在不安装Office的情况下使用它吗?我正在使用Azure。
Naveen Katakam

24

答案并没有帮助我解决问题,尽管我使用Microsoft的msi安装程序安装了程序集,但我找不到(浏览)程序集。对我来说,excel程序集位于C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll


在尝试了文件夹GAC,GAC_32和GAC_64之后,我认为它永远不会在最后一个文件夹GAC_MSIL中。但是确实如此。谢谢你的评论。对我来说很棒!
Marty_in_a_Box

最简单,最好的答案。多谢,伙计。
Wessam El Mahdy

8

只需添加参考 Microsoft.Office.Interop.Excel

它包含与MicroSoft Excel相关的类,无需添加更多引用。


1
那是我尝试的第一件事。但是找不到“办公室”部分。
user850010

其实和@ user850010有同样的问题,但最终意识到我在我的解决方案中右键单击并添加了错误项目的references文件夹。
用户

4

我猜您正在尝试执行的操作是添加Microsoft.Office.Interop.Excelwith using语句,而没有在应用程序中添加其引用,在这种情况下将找不到该引用。在使用using语句调用它之前,您需要添加对您的应用程序的引用。右键单击References并添加Excel Interop参考。


4

添加参考>浏览> C:> Windows>程序集> GAC> Microsoft.Office.Interop.Excel> 12.0.0.0_wasd ..> Microsoft.Office.Interop.Excel.dll



3

如果已安装Microsoft Office,则应该能够添加对Interop.Excel的引用。

例如,我在其中键入此信息的PC上具有MSVS 2010 C#Express和Office2010。我可以添加对Microsoft.Office.Interop.Excel 11.0.0.0的引用。

希望有帮助


3

其在com组件中的名称为:“ Microsoft Office 14对象库”


1
VS2010:将COM引用添加到“ Microsoft Office 14对象库”只会添加对“ Microsoft.Office.Core”的引用。更好:使用COM引用“ Microsoft Excel 14.0对象库”。它直接指向已安装的Excel可执行文件,但将显示为对“ Microsoft.Office.Core”和“ Microsoft.Office.Interop.Excel”的引用。如果仅需要在安装了Excel的计算机上运行和部署,则应该会有所帮助。
JS

3

自Office 2007以来,最好的选择是使用Open XML SDK。我们使用了Word.Interop,但有时会暂停,因此不建议Microsoft将它用作服务器端文档格式,因此Open XML SDK使您可以轻松地以DOCX和Open XML格式创建Word文档。它使您在可伸缩性,可靠性(文件已损坏的情况下可以重建)和另一个非常好的特性方面进展顺利。


2

这是超级可靠的解决方案,您只需要在Debug / Release文件夹中有excell.dll即可。我的文件为77,824字节,我将其下载为文件,这也解释了为什么有些人编译了Debug,但没有发布Debug,反之亦然。

特伦托


2

我只是遇到了同样的问题,但是这些答案都没有帮助我。我确实在Mostey指出的位置的电脑上找到了dll :(C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll),但这不是我试图构建的项目中引用。

我们在Visual Studio 2012中的项目中的参考指向 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\。这个位置对我来说是空的,但对其他所有人都很好。经过多次尝试,但我最终找到了一个可以正常运行的安装程序。我希望这可以节省其他人同样的麻烦!

-> VS2012的Office工具套件安装程序 <-

位于Office文档和下载中页面上。向下滚动到“ 工具下载”。VS2013目前也有一个。



1

我有相同的问题,并且在将VS2012升级到VS2015后,Microsoft.Office.Interop并未出现在“添加引用”选项中。我基本上修复了安装(控制面板>程序和功能> VS 2012>右键单击更改>修复),并添加了Microsoft Office组件。之后,相同的解决方案开始工作。


0

确保您的项目是32位。

我遇到了这个问题,当我在“参考”->“程序集”->“搜索”中找到“所有32位Office Interop程序集”时,就勾选了“首选32位并重建”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.