无法将类型为excel.applicationclass的com 强制转换为接口类型的解决方法[转]
今天碰到客户的电脑在导出EXCEL的时候提示,无法将类型为 excel.applicationclass 的 com 强制转换为接口类型 excel._application 的问题
最后用下面的方法解决,最主要的就是这句话: “C:\Program Files\Microsoft Office\OFFICE11\excel.exe” /regserver
客户电脑的故障是原先导出正常,后来突然不能导出了,事后估计是因为安装了WPS的原因,导致相应的组件冲突。
中间过程是卸载WPS,然后重装OFFICE2003,问题都无法解决,最后就上面的命令重新注册EXCEL组件后,问题解决。
这个问题,正好我也碰到过,而且貌似很多人也碰到过这个问题.
其实这个主要就是 服务器上没有安装office,或者安装了但是没有相关权限.给你一个参考的解决办法.
一. 如果采用Office 组件进行Excel导出, 服务器上必须安装对应版本的Office(如你开发使用的Office2003,则服务器也需要安装Office2003,当然,如果仅仅是导出Excel 则只需安装Office Excel), 没有安装Office是不能够进行导出的.
二. 对于出现类似于 “错误代码: 检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。” 错误,其原因基本上是由于权限不够导致的,一般的解决步骤如下:(以下解决方案适用于 WinXp,2003,2008, 包括64位系统, 我所采用的Office 版本为2003)
1:在”开始”->”运行”中输入dcomcnfg.exe启动”组件服务”
2:依次双击”组件服务”->”计算机”->”我的电脑”->”DCOM配置”
3:在”DCOM配置”中找到”Microsoft Excel 应用程序”,在它上面点击右键,然后点击”属性”,弹出”Microsoft Excel 应
用程序属性”对话框
特别注意: 在win2008 64位系统中, 默认是看不到 “Microsoft Excel 应用程序” 这一项的,需要先在 “开始”->”运行”
里输入 “mmc -32″ (不要引号) 回车,在弹出的窗口中,
a.在第一个菜单(File)中选择 “添加/删除组件(Add/Remove Snap)”
b.添加”组件服务(Component Services)
c.然后可以在 组件服务(Component Services)下找到 “Microsoft Excel 应用程序” 项
d.此后的操作同 32位操作系统
4:点击”标识”标签,选择”交互式用户”
5:点击”安全”标签,在”启动和激活权限”上点击”自定义”,然后点击对应的”编辑”按钮,在弹出的”安全性”对话框中填加
一个”NETWORK SERVICE”用户(注意要选择本计算机名),并给它赋予”本地启动”和”本地激活”权限.
6:依然是”安全”标签,在”访问权限”上点击”自定义”,然后点击”编辑”,在弹出的”安全性”对话框中也填加一个”NETWORK
SERVICE”用户,然后赋予”本地访问”权限.
这样,我们便配置好了相应的Excel的DCOM权限.
注意:这是在WIN2003上配置的,在2000,xp上,是配置ASPNET用户
一般通过以上步骤就能解决问题,当然如果您的问题还没解决,可以参考以下资料:
1) 查看你的Web.config 中是否有 <identity impersonate=”true”/> 这一项,如果有,请删除
这段话的目的是为每一个请求进行客户端模拟,按照提示信息中的解释,由于没有设置Username,
所以当前执行的用户是IUSR_MACHINENAME,而该用户是没有操作Excel组件的权限
如果您需要添加指定用户的权限,你可以
<identity impersonate=”true” userName=”登录名” password=”密码 “/>
2)如果交互式用户设置后出现错误8000401a,可取消交互式用户,指定为administratr,可暂时解决此问题。
注意:采用以上设置后,打开Excel可能会出现“无法使用对象引用或链接”,并且不能进行单元格粘贴。
原因不明,取消设置后即可消失。
3)如果同时存在多个Office版本,请确认下默认打开Excel的版本是哪个,如果有误则可以采用如下方法重新注册
开始 -> 运行 -> 输入excel2003(2007类似)的安装路径,
例如 “C:\Program Files\Microsoft Office\OFFICE11\excel.exe” /regserver
注意/符号前面有一个空格,其中”C:\Program Files\Microsoft Office\OFFICE11\excel.exe”
是excel2003的安装程序的路径,参数regserver表示注册的意思
4)如果出现”不能设置类PageSetup的Orientation属性”的错误,检查下服务器上是否安装了打印机,如果没有
请安装一个(可以是虚拟打印机,本地)
5)对于64位系统如果还有问题,尝试下
在 C:\Windows\SysWOW64\config\systemprofile\下创建Desktop文件夹
然后提升应用池权限试试.
无法将类型为excel.applicationclass的com 强制转换为接口类型的解决方法[转]的更多相关文章
- 无法将类型为 excel.applicationclass 的 com 强制转换为接口类型 的解决方法。
今天碰到客户的电脑在导出EXCEL的时候提示,无法将类型为 excel.applicationclass 的 com 强制转换为接口类型 excel._application 的问题 最后用下面的方法 ...
- C#与excel互操作的错误无法将类型为“Excel.ApplicationClass”的COM 对象强制转换为接口类型“Excel._Application”
如果您使用的电脑要操作的是office2003而之前使用过office2007使用此方法可解决您的问题 无法将类型为“Microsoft.Office.Interop.Excel.Applicatio ...
- 无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”
报错内容如下: 无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的COM对象强制转换为接口类型“Microsoft.Office.Inte ...
- 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。
无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Wor ...
- (转)无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-
HRESULT:0x80030002 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft ...
- System.InvalidCastException: 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。
报错:System.InvalidCastException: 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接 ...
- 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型,原因为没有注册类
错误描述 e = {"无法将类型为"System.__ComObject"的 COM 对象强制转换为接口类型"OpcRcw.Da.IOPCServer" ...
- C#操作EXCEL的时候出现“ 无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application” ”问题
总是报出这个错误,准备放弃COM的组件转投NPOI,后来想起在装这个操作系统的时候,自带装过WPS,后来使用360卸载了.于是想着试一试的心态,重新安装了WPS,结果,问题解决了.你懂的.
- 无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来 自 HRESULT:
无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”.此操作失败的原因是对 IID 为“{000208D5 -000 ...
随机推荐
- AFNetworking 动态修改acceptableContentTypes 设置ContentType
AFJSONResponseSerializer+Serializer.h #import <AFNetworking/AFNetworking.h> @interface AFJSONR ...
- Vue之Vuex
一.什么是vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.简单来说就是一个数据统一 ...
- Spring Security教程系列(一)基础篇-2
第 4 章 自定义登陆页面 Spring Security虽然默认提供了一个登陆页面,但是这个页面实在太简陋了,只有在快速演示时才有可能它做系统的登陆页面,实际开发时无论是从美观还是实用性角度考虑,我 ...
- 前端技术API手册(2) -- CSS API 的实现
微信小程序 jQuery每日经典 第二阶段已经发布,截至目前收录的技术有jQuery和CSS.其他技术正在不断的填充完善中. CSS技术手册实现的方法: 资料来源 所有的CSS资料均参考自网址:htt ...
- html或者php中 input框限制只能输入正整数,逻辑与和或运算
有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数字.小数点.英文字母.汉字等代码. 例如,输入大于0的正整数 代码如下: <input onkeyup="if ...
- spring mvc 存取值
(转) 1,使用HttpServletRequest获取 @RequestMapping("/login.do") public String login(HttpServletR ...
- 基于Express+Socket.io+MongoDB的即时聊天系统的设计与实现
记得从高中上课时经常偷偷的和同学们使用qq进行聊天,那时候经常需要进行下载qq,但是当时又没有那么多的流量进行下载,这就是一个很尴尬的事情了,当时就多想要有一个可以进行线上聊天的网站呀,不用每次痛苦的 ...
- 运行容器的最佳实践 - 每天5分钟玩转 Docker 容器技术(24)
按用途容器大致可分为两类:服务类容器和工具类的容器. 1. 服务类容器以 daemon 的形式运行,对外提供服务.比如 web server,数据库等.通过 -d 以后台方式启动这类容器是非常合适的. ...
- Java之反射--练习
定义Student 类:包含:姓名和年龄等属性,有参和无参构造方法,输出所有信息的方法 1.使用多种方法生成一个Student类的Class对象 2.使用Class类获取Student类的结构信息并输 ...
- socket聊天室(服务端)(多线程)(TCP)
#include<string.h> #include<signal.h> #include<stdio.h> #include<sys/socket.h&g ...