(转).net使用Office组件读取Excel,引用Microsoft.Office.Interop.Excel出现的问题

本文介绍了解决在服务器上部署使用Excel COM组件的应用程序时遇到的问题,通过生成Interop.Excel.dll来确保跨环境的一致性。

内容转自:http://www.tech-q.cn/thread-2093-1-1.html

出现问题:在本地添加引用(com):Microsoft Office 11.0 Object Library,并写好程序调试正常,部署到服务器时,出现异常 Excel.Application不是对象.

初步诊断:服务器没有安装Office 和 Excel组件
第一步尝试解决:对服务器安装Excel等Office组件,进一步测试程序:失败!
第二步尝试解决:将Excel.exe生成Interop.Excel.dll,然后用sdk引用该Dll,编译成功,测试程序:成功!
原因:本地引用的com不会在程序的bin目录生成dll文件,而程序是根据路径在寻找dll的.部署到服务器上时,假如Excel等dll与本地路径不一致,将会抛出异常,定义的Excel对象肯定是不存在的.

具体方法:
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文件)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值