【问题标题】:Microsoft.Office.Interop.Excel failure on initialization (Office 2016)Microsoft.Office.Interop.Excel 初始化失败 (Office 2016)
【发布时间】:2017-05-30 14:47:56
【问题描述】:

这是我在安装 Office 2016 之前使用的代码。

var excelApp = new Excel.Application();
excelApp.Visible = true;
Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(finfo.FullName, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, false, false);
Excel.Sheets excelSheets = excelWorkbook.Worksheets;
Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelSheets.get_Item(currentSheet);
var cellValue =(excelWorksheet.Cells[a, b] as Excel.Range).Value;

代码运行良好,但安装 Office 2016 后我发现无法使用 using Excel = Microsoft.Office.Interop.Excel;

我找到的唯一兼容库是

Microsoft.Office.Core(Microsoft Office 16.0 对象库)

我找不到任何访问 Excel 文件的示例。有没有其他方法可以访问安装了 Office 2016 的 Excel 文件(PIA)

这是我尝试运行代码时遇到的错误

无法将“System.__ComObject”类型的 COM 对象转换为接口 键入“Microsoft.Office.Interop.Excel.Application”。这个操作 失败,因为对 COM 组件的 QueryInterface 调用 由于 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口失败 到以下错误:未注册接口(来自的异常 HRESULT: 0x80040155)。

【问题讨论】:

  • 这与“初始化”有什么关系并不是很明显。 PIA have been obsolete 在过去 7 年中,您将不得不停止使用它们。如果真的是“初始化”,你的程序不会启动,那么考虑你可能安装了64位版本的Office。所以你的程序也需要在 64 位模式下运行。
  • 当我说初始化时,我指的是访问 Excel 文件的 Excel 对象实例。我将 Office 更改为 2016,我认为 PIA 是我的代码不起作用的主要问题(我猜)。访问 Excel 文件应该做哪些更改?
  • 我发布了错误。 @HansPassant

标签: c# excel excel-interop office-2016


【解决方案1】:

试试这些步骤:

  1. 参考“Microsoft Office 16.0 对象库”(您可能会看到版本 2.5.0.0)和“Microsoft Office Interop Excel”(您可能会看到版本 15.0.0),这个可以在 ASSEMBLIES EXTENSIONS 找到在 VS 中。

  2. 在您的例程/模块顶部使用“System.Runtime.InteropServices”和(我猜)“System.Reflection”进行“使用”。

  3. 我会尝试从 VB.NET 转换为你:

    Object ExcelObject = null;
    Microsoft.Office.Interop.Excel.Application ExcelApp = null;
    
    Try
        ExcelApp = new Microsoft.Office.Interop.Excel.Application;
    
        ' and so forth like your code...
    
    Catch
    End Try
    

更新

有时上面提到的 DLL 可以在 COM 选项卡以外的地方找到。要查找 INTEROP 引用(它们与 PIA 相同),您必须选择它们,如下所示:

这些文件要么与您的 Office 软件包相关,要么通过 PIA(取决于您的 Office 版本)。看这里:PIA Libraries

如果您没有看到上述 DLL,请在您的计算机上下载并安装 PIA。

【讨论】:

  • 我正在使用 vs2017,在添加参考 COM 选项卡下我找不到 Microsoft.Office.Interop.Excel。对 Office 的唯一引用是 Microsoft Office 16.0 对象库。
【解决方案2】:

问题出在完全不同的领域。这个问题与注册表有关。我完全删除了与 Office 安装有关的所有注册表项并重新安装了 Office 2016。这解决了这个问题。感谢您的回答。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 2012-11-17
    • 2017-12-10
    • 2018-09-17
    • 1970-01-01
    • 2018-10-13
    • 2014-03-13
    相关资源
    最近更新 更多