zoukankan      html  css  js  c++  java
  • 如何解决编程中Excel不能读取的问题

    首先,这里提供的解决办法仅适用于出现如下异常的情况:
    无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”。此操作失败的原因是对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 库没有注册。 (异常来自 HRESULT:0x8002801D (TYPE_E_LIBNOTREGISTERED))。
    英文版的异常消息如下:
    Unable to cast COM object of type 'Microsoft.Office.Interop.Excel.ApplicationClass' to interface type 'Microsoft.Office.Interop.Excel._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208D5-0000-0000-C000-000000000046}' failed due to the following error:  could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).


    本人出现如上异常的系统环境如下:
    1. 操作系统为Windows Server 2008 R2 x64;
    2. 安装了SharePoint 2010 Beta,从而如下文件夹及相应文件被创建:
    C:\Program Files\Microsoft Office\Office14\...
    C:\Program Files (x86)\Microsoft Office\Office14\...
    3. 安装了Visual Studio 2010 RC,从而如下文件夹及相应文件被创建:
    C:\Program Files\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office12\Microsoft.Office.Interop.Excel.dll
    C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office12\Microsoft.Office.Interop.Excel.dll
    4. 安装了MS Office 2007。(注:MS Office的版本和SharePoint的版本不一致。这一点可能是出现异常的根本原因!


    对异常异常的解决办法为,删除如下两类的注册表键:
    第一类:HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.7
    第二类:HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00020812-0000-0000-C000-000000000046}\InprocServer32\14.0.0.0
    查询如上项的查找关键字为:“Microsoft.Office.Interop.Excel, Version=14.0.0.0”。


    正常情况下,删除如上注册表项后前述异常将不再出现。

  • 相关阅读:
    机器学习之sigmoid函数
    linux时间校对
    Lumen5.7快速实现Captcha图片验证码功能
    莫烦python教程地址
    获得用户的真实ip HTTP_X_FORWARDED_FOR
    grep日志去重
    asio的网络通讯代码练手
    my simplest kv db
    c++11 线程池学习笔记 (二) 线程池
    c++11 线程池学习笔记 (一) 任务队列
  • 原文地址:https://www.cnblogs.com/jancco/p/2489105.html
Copyright © 2011-2022 走看看