zoukankan      html  css  js  c++  java
  • .net使用Office组件读取Excel,引用Microsoft.Office.Interop.Excel出现的问题

    出现问题:在本地添加引用(com):Microsoft Office 11.0 Object Library,并写好程序调试正常,部署到服务器,出现异常 Excel.Application不是对象.


    初步诊断:服务器没有安装Office Excel组件
    第一步尝试解决:对服务器安装ExcelOffice组件,进一步测试程序:失败!
    第二步尝试解决:Excel.exe生成Interop.Excel.dll,然后用sdk引用该Dll,编译成功,测试程序:成功!
    原因:本地引用的com不会在程序的bin目录生成dll文件,而程序是根据路径在寻找dll.部署到服务器上时,假如Exceldll与本地路径不一致,将会抛出异常,定义的Excel对象肯定是不存在的.

    具体方法:
    1
    、如何生成Interop.Excel.dll
         
    进入你的visual studiosdk下的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'
     
         
    此问题很有可能是TlbImpbug,不支持空格式的路径;(具体原因不明)不要紧,将Excel.exe拷贝入bin目录,直接运行TlbImp /out:Interop.Excel.dll Excel.exe,提示“Type library imported to Interop.Excel.dll路径
         
    bin目录下找到Interop.Excel.dll文件。在你的visual studio里将其引用即可。

    2
    、如果是excel2000excel2002怎么办?
    如果是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文件)


     

  • 相关阅读:
    Django的mode的分组查询和聚合查询和F查询和Q查询
    Django的models操作
    django复习--学校管理系统用到的知识点梳理
    django做form表单的数据验证
    一个不错的git资源站点
    php异常处理
    laravel自定义验证
    docker从容器中怎么访问宿主机
    laravel 之jwt认证使用详解
    laravel更改默认的登录密码加密方式
  • 原文地址:https://www.cnblogs.com/wangsx/p/2137621.html
Copyright © 2011-2022 走看看