• 如何解决编程中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”。


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

  • 相关阅读:
    Python 学习 —— 进阶篇(装饰器、类的特殊方法)
    Python 基础学习的几个小例子
    MyBatis——特殊传参问题小结
    为什么要有分布式事务 分布式事务解决的什么问题 一次解答
    2pc事务和3pc事务区别详解
    SPEL语法
    分布式事务框架 TX-LCN 使用
    分布式事务解决方案
    excel 使用总结
    nginx 常用配置
  • 原文地址:https://www.cnblogs.com/jancco/p/2489105.html
Copyright © 2020-2023  润新知