Office.Interop.Excel引用失败

前一段时间,安装了VS2017后,VS2010引用Office.Interop.Excel.dll报错,导致编译一直失败。本机安装的是Office2010

现象:

代码取下来默认引用的Office.Interop.Excel的版本是15.0.0.0,而本机是office2010 对应的应该是office14,但将引用更换成14.0.0遇到如下报错:

Predefined type'Microsoft.CSharp.RuntimeBinder.Binder' is not defined or imported

Interop type'Microsoft.Office.Interop.Excel.ApplicationClass' cannot be embedded. Use theapplicable interface instead.     

但引用Microsoft.CSharp后会一直要求引用其他dll。

解决方法

右击引用的Office.Interop.Excel,将属性中的Embed InteropType 设置为False(将嵌入互操作类型值改为false)

 

原因:

互操作性用来描述的是不同的程序借助同一套交换格式来交换数据,读写相同文件格式及采用相同协议的能力。

在默认情况下,VS会添加C#项目中的任何新互操作引用的此属性设为true

分析可借鉴:http://www.cr173.com/html/49543_1.html







`Microsoft.Office.Interop.Excel` 是 Microsoft Office 应用程序的 COM (Component Object Model) 接口,用于在 .NET 环境中与 Excel 进行交互。它是通过 Visual Studio 的 Interop 特性实现的,允许 C# 程序员访问 Excel 的功能,如创建工作簿、操作工作表、读写数据等。 要在 C#引用 `Microsoft.Office.Interop.Excel`,你需要按照以下步骤操作: 1. **安装 Office 引擎**: 首先,确保你已经在计算机上安装了至少 Office 2007 或更高版本,因为 Interop 是针对这些版本设计的。如果是在开发环境中,你可能需要在 Visual Studio 的 NuGet 包管理器中安装 `Microsoft.Office.Interop.Excel`。 2. **添加引用**: 打开你的 C# 项目,右键点击 `References`(引用)节点,然后选择 `Add Reference`。在 COM 组件窗口中,找到并勾选 `Microsoft.Office.Interop.Excel`,然后点击 `OK`。 3. **命名空间导入**: 由于 `Excel` 对象是在 `Microsoft.Office.Interop` 命名空间下的,你需要在代码文件顶部添加相应的命名空间导入,例如: ```csharp using Microsoft.Office.Interop.Excel; ``` 4. **创建 Excel 对象**: 你可以使用 `Application` 类创建一个 Excel 应用实例,然后使用其提供的方法来操作 Excel 工作簿和工作表: ```csharp Application excelApp = new Application(); Workbook workbook = excelApp.Workbooks.Add(); Worksheet worksheet = workbook.ActiveSheet; // ... 使用 worksheet 对象进行操作 ... ``` 5. **处理 COM 异常**: Interop 接口可能会抛出 `COMException`,这通常是因为 Office 应用或文档有错误。记得捕获和处理这些异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值