引用Microsoft.Office.Interop.Excel出现的问题

来源:互联网 发布:scifinder web数据库 编辑:程序博客网 时间:2024/05/17 09:29

操作背景:c#操作Excel

出现问题:在本地添加引用(com):Microsoft Office 11.0 Object Library,出现异常 Excel.Application不是对象.

初步诊断:没有安装Excel组件

第一步尝试解决:安装Excel等Office组件,进一步测试程序:失败!

第二步尝试解决:将Excel.exe生成Interop.Excel.dll,然后用sdk引用该Dll,编译成功,测试程序:成功!

原因:本地引用的com不会在程序的bin目录生成dll文件,而程序是根据路径在寻找dll的.

具体方法:

1、如何生成Interop.Excel.dll?

     进入你的visual studio的sdk下的bin目录,找到TlbImp.exe文件,如果没有,请用光盘安装此文件,详细说明请参照MSDN。
     命令行(cmd)进入bin目录,运行TlbImp /out:Interop.Excel.dll Office安装目录+Excel.exe

     此时很可能会报错:TlbImp   error:   Unable   to   locate   input   type   library:   'c:/program files/mcrosoft offi  
  ce/office/EXCEL.EXE'
     此问题很有可能是TlbImp的bug,不支持空格式的路径;(具体原因不明)不要紧,将Excel.exe拷贝入bin目录,直接运行TlbImp /out:Interop.Excel.dll Excel.exe,提示“Type library imported to Interop.Excel.dll路径”

     在bin目录下找到Interop.Excel.dll文件。在你的visual studio里将其引用即可。

2、如果是excel2000或excel2002怎么办?

  如果是Excel2000,则将Excel.exe改成Excel9.olb
  Excel2002同2003

3、各种版本的引用组件参数如下:

文件/版本Interop.Excel.dllInterop.Office.dll Interop.VBIDE.dll添加引用/COM组件
2000V1.3.0.0V2.1.0.0V5.3.0.0Microsoft Excel 9.0 Object Library(EXCEL9.OLB)
2002(XP)V1.4.0.0V2.2.0.0V5.3.0.0Microsoft Excel 10.0 Object Library(Excel.EXE文件)
2003V1.5.0.0V2.3.0.0V5.3.0.0Microsoft Excel 11.0 Object Library(Excel.EXE文件)