如何引用 Microsoft.Office.Interop.Excel dll?
Posted
技术标签:
【中文标题】如何引用 Microsoft.Office.Interop.Excel dll?【英文标题】:How to reference Microsoft.Office.Interop.Excel dll? 【发布时间】:2013-03-08 02:52:16 【问题描述】:我在 2006 年使用 MS VS 2005 开发了一个处理 excel 表的系统。现在,我不能使用与 MS VS 2012 相同的参考。
var app = new Microsoft.Office.Interop.Excel.Application();
Workbooks wbs = app.Workbooks;
【问题讨论】:
VS2012没有Office项目吗?你不能用那些? 我在尝试从 Microsoft 构建 DEMO 项目时遇到了同样的错误。至此,我开发一个 excel 插件的尝试就结束了。我可以从事许多其他项目,而不是搞乱连“Hello World”都不起作用的东西。 【参考方案1】:使用 NuGet(VS 2013+):
在任何最新版本的 Visual Studio 中,最简单的方法就是使用 NuGet 包管理器。 (即使是 VS2013,带有 NuGet Package Manager for Visual Studio 2013 扩展名。)
右键单击“参考”并选择“管理 NuGet 包...”,然后只需搜索 Excel。
VS 2012:
旧版本的 VS 无法访问 NuGet。
右键单击“参考”并选择“添加参考”。 选择左侧的“扩展”。 查找Microsoft.Office.Interop.Excel
。(请注意,您只需在右上角的搜索框中输入“excel”即可。)
VS 2008 / 2010:
右键单击“参考”并选择“添加参考”。 选择“.NET”标签。 寻找Microsoft.Office.Interop.Excel
。
【讨论】:
当我们从 VS08 更改为 VS12 时,这个 dll 也有一些问题。将其更新到 dll 版本 14.0 后。 (如屏幕截图所示)一切正常。 我正在使用 VS2010 - 由于公司政策 - 我无法使用 VS2012。我在哪里可以找到参考管理器中的“扩展”?它是仅在 VS2012 中可用的功能吗?如果扩展在 VS2010 中不可用,我该如何添加引用?我在 .NET 程序集列表和 Office 目录中都找不到它。 如果我有 VS2013 Express 并且我在 Extension 和 Framework 列表中没有 Microsoft.Office 命名空间怎么办? :P【参考方案2】:您也可以尝试通过包管理器在 Visual Studio 中安装它。
在包控制台中运行Install-Package Microsoft.Office.Interop.Excel
。
这会自动将其添加为项目参考。
使用是这样的:
Using Excel=Microsoft.Office.Interop.Excel;
【讨论】:
【参考方案3】:如果你有 VS 2013 Express 并且找不到 Microsoft.Office 命名空间,试试这个('Microsoft Excel 12.0 Object Library' 如果你想使用 Office 2007)
【讨论】:
经过几个小时的搜索,我终于找到了这一点,这可以解决我在通过 Nuget 包管理器和包管理器控制台添加后找不到 Microsoft.Office 的原因。互操作添加成功,但我仍然无法添加引用!!!非常令人沮丧。 VS2019。谢谢。【参考方案4】:根据 Mulfix 的回答,如果您有 Visual Studio Community 2015,请尝试添加参考... -> COM -> 类型库 -> 'Microsoft Excel 15.0 Object Library'。
【讨论】:
【参考方案5】:有一个名为 NetOffice 的开源项目可将其从您的项目中抽象出来,而不是早期绑定该引用,从而让生活变得更加轻松。这样您就不必依赖安装了特定版本的 Office 的用户。
NetOffice Codeplex site.
【讨论】:
【参考方案6】:您必须检查您的目标是哪个版本的 Excel?
如果您的目标是 Excel 2010 使用版本 14(根据 Grant 的屏幕截图答案),Excel 2007 使用版本 12 。您无法使用 vS2012 支持 Excel 2003,因为它们没有安装正确的 Interop dll。
【讨论】:
以上是关于如何引用 Microsoft.Office.Interop.Excel dll?的主要内容,如果未能解决你的问题,请参考以下文章