zoukankan      html  css  js  c++  java
  • 导出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 FilesMicrosoft OfficeOFFICE11excel.exe” /regserver
    注意/符号前面有一个空格,其中”C:Program FilesMicrosoft OfficeOFFICE11excel.exe”
    是excel2003的安装程序的路径,参数regserver表示注册的意思
    4)如果出现”不能设置类PageSetup的Orientation属性”的错误,检查下服务器上是否安装了打印机,如果没有
    请安装一个(可以是虚拟打印机,本地)
    5)对于64位系统如果还有问题,尝试下
    在 C:WindowsSysWOW64configsystemprofile下创建Desktop文件夹
    然后提升应用池权限试试.
  • 相关阅读:
    一些业内有名的网站收集
    WCF重载
    FCKEditor fckconfig.js配置,添加字体和大小 附:中文字体乱码问题解决
    查询第几条到第几条的数据的SQL语句
    SPOJ 9939 Eliminate the Conflict
    UVA 10534 Wavio Sequence
    HDU 3474 Necklace
    POJ 2823 Sliding Window
    UVA 437 The Tower of Babylon
    UVA 825 Walking on the Safe Side
  • 原文地址:https://www.cnblogs.com/Lxiaojiang/p/3722122.html
Copyright © 2011-2022 走看看