导出excel失败,提醒提示加载类型库/DDL出错

导出excel失败,提醒提示加载类型库/DDL出错

www.MyException.Cn   发布于:2012-08-17
02:08:34   浏览:1538次

导出excel失败,提示提示加载类型库/DDL出错 ?
我想做导出数据到excel,引用Excel的动态链接库Microsoft Excel 11.0
Object Library(2003版本的),并在程序里添加了

using Excel;
在我自己的笔记本上编译通过并成功导出了Excel,但是到公司的机器上不行了,同样的操作却引用不上Excel这个命

名空间了,我原先自己笔记本上做好的程序拷贝过来,编译通过,执行时出错,提示:无法将类型为"Excel.ApplicationClass"的

COM对象强制转换为接口类型"Excel.Application".此操作失败的原因是对IID为"{000208D5-0000-0000-C000-000000000046}"的接

口的COM组件调用QueryInterface,因一下错误而失败:

 
加载类型库/DDL时出错.(异常来自
HRESULT:0X8029C4A(TYPE_E_CANTLOADLIBRARY))

都是装的vs2008,但我感觉好像是公司的vs里少什么类型库,但是又不知道问题在哪、
求教.

如有满意答案或能帮助解决了问题的,追加50分,谢谢!
------解决方案--------------------
这个问题,正好我也碰到过,而且貌似很多人也碰到过这个问题.
其实这个主要就是
服务器上没有安装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失败,提醒提示加载类型库/DDL出错,布布扣,bubuko.com

时间: 2024-10-09 10:09:32

导出excel失败,提醒提示加载类型库/DDL出错的相关文章

使用NPOI将数据库里信息导出Excel表格并提示用户下载

使用NPOI进行导出Excel表格大家基本都会,我在网上却很少找到导出Excel表格并提示下载的 简单的代码如下 1 //mvc项目可以传多个id以逗号相隔的字符串 2 public ActionResult execl(string ids) 3 { 4 List<PayLog> list = new List<PayLog>(); 5 string[] idsstring = ids.Split(new char[] { ',' }, StringSplitOptions.Re

ASP.NET导出Excel(利用NPOI和EPPlus库,无需安装Office)

网上提供了很多Asp.net中操作Excel的方法,其中大部分是调用微软的Office组件,下面提供三个无须安装Office即可从Asp.net输出Excel的方法. 1 简单方法 //下面代码输出的Excel有三列(姓名.年龄.性别)//列之间用\t隔开StringWriter sw = new StringWriter();sw.WriteLine("姓名\t年龄\t性别"); //Excel表格的列标题 sw.WriteLine("张三\t29\t男"); /

导入导出Excel的Java工具类ExcelUtil

在编写ExcelUtil之前,在网上查了一些资料.java中用来处理Excel的第三方开源项目主要就是POI和JXL.poi功能强大,但是比较耗资源,对于大数据量的导入导出性能不是太好:jxl功能简单,但是性能比较好. 由于本项目的导入导出更多关注性能问题,而且jxl提供的功能基本也都够用了,于是选择了jxl作为支持. 实战 导出就是将List转化为Excel(listToExcel) 导入就是将Excel转化为List(excelToList) 导入导出中会出现各种各样的问题,比如:数据源为空

Java程序实现导出Excel,支持IE低版本

来博客园两年多了,最近才开通了微博,因为懒所以也一直没有写东西,今天想整理一下自己前段时间遇到的一个导出的问题. 因为项目的需求,要做一部分导出功能.开始的时候用的公司的导出,但是很奇怪有部分模块导出的时候就是会报500错误,发现在删减一些字段后就恢复了正常,当时因为项目紧张,也就临时删减了一些,但也不是长久之计,之后自己在原本的基础上重新修改整理了一下,目前运行还算稳定,就此和大家分享一下. 导出需要三个部分,js,公共方法,后台方法. js代码 1 function exportData()

项目笔记:导出Excel功能分sheet页插入数据

导出Excel功能分sheet页处理数据: /*导出EXCEL*/ public void createExcel() { log.info("导出Excel功能已经启动-BEGIN"); JxlUtil jsl = new JxlUtil(); List<Device> dataList =new ArrayList<Device>(); List<DeviceExport> list = new ArrayList<DeviceExport

Springmvc导出Excel(maven)

一.导入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.9</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-

无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来 自 HRESULT:

无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”.此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错. (异常来 自 HRESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY)) 经过多般折腾,还是没什么更好的办法.

解决导出Excel时提示“Warning: Maximum number of format records exceeded. Using default format”

最近在使用jxl导出Excel文件时出现一个问题,就是当数据量比较多的时候,后天会提示" Warning:  Maximum number of format records exceeded.  Using default format",然后导出的Excel文件打开后会报错,导出失败.解决方案是更换一下jar包. 下载地址:

Element-ui组件库upload导出Excel表格

Element-ui组件库upload导出Excel表格 // 上传excel upload() { this.$refs.upload.submit(); //调用upload中自定义的方法 }, // 导入excel学生列表 uploadFile(item) { //:http-request自定义方法 const form = new FormData(); form.append("token", this.token); form.append("file"