问题:
程序集加载跟踪: 下列信息有助于确定程序集“Interop.Excel, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null”无法加载的原因。
警告: 程序集绑定日志记录被关闭。
要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1。
注意: 会有一些与程序集绑定失败日志记录关联的性能损失。
要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。
本机环境:WINDOWS XP +OFFICE 2003(本人采用第二种方法解决)
方法一:
第一步:
在项目的引用节点单击右键,在弹出的菜单中单击添加引用...
在弹出的对话框中单击COM项,找到Microsoft Excel 11.0 Object Library
并单击选中,然后单击选择按钮,如图“引用Excel2003”。
从中我们可以看出是引用的Excel.Exe文件,这是Excel2003版。Excel2000及Excel2002即Excel XP COM项见“Excel版本对照表”。
第二步:
引用Excel2003后,会在引用节点中增加Excel等节点,如图“引用Excel2003后可删除不必要的引用”。 进入项目的bin\Debug目录可以看到,相应的增加了 Interop.Excel.dll、Interop.Microsoft.Office.Core.dll、Interop.VBIDE.dll三个库文件,它们都是.Net将 COM 类型库中的类型定义转换为.Net公共语言运行库程序集中的等效定义生成的文件。我们只需要引用Interop.Excel.dll就可以了,后面的两个文件是支持文件,不添加这两个文件的引用时在调试程序时如果有编译 不通过的如语法错误会提示未能找到依赖项Interop.Office、Interop.VBIDE,一般这是个假象,如果 没有语法错误,编译器就不会提示了:)。 我们在引用中将Microsoft.Office.Core、stdole、VBIDE选中删除掉。也可以将Excel引用删除掉重新直接引用Interop.Excel.dll。
方法二:是直接添加对Interop.Excel.dll的引用。
生成Interop.Excel.dll的另一方法:
以上是可视化自动生成Excel对应的程序集,也可以用如下的方法生成。
打开Visual Studio .Net2003命令提示,运行
TlbImp Excel.EXE Interop.Excel.dll
如果是Excel2000,则
TlbImp Excel9.olb Interop.Excel.dll
当然,第一参数Excel.EXE(Excel9.olb)要指定目录(Office2000安装目录),如果不指定,需要把它拷贝到VS.Net安装路径下
如C:\Visual Studio.Net\SDK\v1.1\Bin;
同理,第二参数Interop.Excel.dll是生成的对应的动态库,如果不指定目录,默认生成在VS.Net安装路径BIN下 ,你可以用你自己喜欢的名字
取代Interop.Excel.dll,生成之后你就可以在VS.Net开发环境项目中添加对它的引用了。
Tlbimp.exe为类型库导入程序,它将 COM 类型库中的类型定义转换为公共语言运行库程序集中的等效定义,关于它的详细使用参见MSDN
各种的引用组件参数如下:(Excel版本对照表)
各种的引用组件参数如下:(Excel版本对照表)
文件/版本 Interop.Excel.dll Interop.Office.dll Interop.VBIDE.dll 添加引用\COM组件
2000 V1.3.0.0 V2.1.0.0 V5.3.0.0 Microsoft Excel 9.0 Object Library(EXCEL9.OLB)
2002(XP) V1.4.0.0 V2.2.0.0 V5.3.0.0 Microsoft Excel 10.0 Object Library(Excel.EXE文件)
2003 V1.5.0.0 V2.3.0.0 V5.3.0.0 Microsoft Excel 11.0 Object Library(Excel.EXE文件)