无法获得Microsoft.Office.Interop引用的工作

Ben*_*eck 18 c# office-interop winforms

我有一个C#winforms应用程序,我只是想打开一个Excel工作表.当我尝试添加对Microsoft.Office.Interop的引用时,"Office"部分为红色并显示"无法解析符号'Office'".

当我尝试构建时,错误是:

The type or namespace name 'Office' does not exist in the namespace 'Microsoft' 
    (are you missing an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

我安装了Office 2012,我想我安装了主互操作程序集......但我并不乐观.

我知道这应该是那么容易,但我一直在寻找答案,差不多一个小时,只是无法搞清楚.提前致谢!

Mat*_*bus 27

您需要将库程序集引用添加到项目中.它们被称为"主要互操作组件".

(假设Visual Studio 2010)

程序

  • 打开解决方案资源管理器窗口
  • 扩展您的项目文件夹手风琴.
  • 右键单击引用元素
  • 从下拉列表中选择"添加引用"
  • 选择.NET选项卡并查找名为的对象库Microsoft.Office.Interop.Excel.
  • 点击确定

添加参考窗口与excel interop hilighted

对象库现在应该出现在您的引用中.

参考文件夹手风琴与excel库高亮


Sim*_*son 24

在VS2015中使用NuGet包管理器

  • 右键单击visual studio项目中的引用
  • 选择Manage NuGet Packages
  • 类型microsoft.office在搜索框中
  • 选择Microsoft.Office.Interop.Excel
  • 单击安装
  • 重建您的解决方案


Mik*_*ill 6

今天早上我也遇到了同样的错误,使用的是一个过去一直完美构建的 Winforms 应用程序。唯一发生的变化是我们公司将笔记本电脑从 Excel 2007 升级到了 Excel 2013。

经过一番调查后,我意识到该应用程序是一个 .Net 3.5 应用程序,尽管解决方案资源管理器建议所有引用都很好。

解决方案浏览器

……事实上,他们不是。明显的迹象是,当我尝试在应用程序中重新添加引用时,找不到它们......

互操作性

我需要做的是:

  • 将应用程序从 .Net 3.5 更新到 .Net 4.5
  • 删除与 Office 相关的引用(上面第一个屏幕截图中显示的前 5 个)
  • 重新添加参考文献(现在显示为版本 14 或 15)

我还必须更改一行代码:

excel = new Excel.ApplicationClass();
Run Code Online (Sandbox Code Playgroud)

excel = new Excel.Application();
Run Code Online (Sandbox Code Playgroud)

完成此操作后,应用程序构建时没有错误,并再次成功运行。