c#中转出Excel时碰到Excel的COM组件没有注册的问题解决方法

Office 组件 注册 手工注册

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

     进入你的visual studio的sdk下的bin目录,找到TlbImp.exe文件(实际上可能不在这里,所以可以打开VS的控制台,输入tlbimp看下),如果没有,请用光盘安装此文件,TLBIMP的使用说明MSDN:http://msdn.microsoft.com/zh-cn/library/tt0cf3sx(v=vs.80).aspx
     命令行(cmd)进入bin目录,运行TlbImp /out:Interop.Excel.dll  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里将其引用即可。

可以查看下我的命令E:\func_core7_branch\Coding\product\win32\office6是wps所在的目录

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

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

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

文件/版本Interop.Excel.dllInterop.Office.dllInterop.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文件)

(另外一种既不需要客户端安装excel也不需要安装Microsoft.Jet.OLEDB.4.0的方法: http://www.codeproject.com/KB/office/ExcelReader.aspx

4、困扰我已久的问题:程序智能切换 不同版本(即可以动态调用不同版本)

以ET(即WPS 表格)来举例,Microsoft Office同理

前提是已安装wps环境。C#中如果想要调用不同版本的ET(Excel),则把指向的路径更改就行了

注册表中定位到如下项目HKEY_CLASSES_ROOT\CLSID\{45540001-5750-5300-4B49-4E47534F4654}

更改子项LocalServer32中名称为"(默认)"的值比如:E:\func_core7_branch\Coding\product\win32\office6\et.exe /Automation

其中E:\func_core7_branch\Coding\product\win32\office6\et.exe就是你程序要调用的ET的版本。

说明:ET的CLSID可能会不一样,可能不是{45540001-5750-5300-4B49-4E47534F4654} 。只需要

在控制面板\系统和安全\管理工具\组建服务\计算机\我的电脑\DCOM配置找到Kingsoft Spreadsheets Application Class

查看详细信息可看到CLSID。附上我注册ET的代码

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值