您的位置:首页 > 运维架构

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

2011-08-13 23:47 501 查看
出现问题:在本地添加引用(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.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文件)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐