初始化时Microsoft.Office.Interop.Excel失败(Office 2016)

时间:2017-05-30 14:47:57

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

这是我在安装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(PIA)的Excel文件

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

  

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

2 个答案:

答案 0 :(得分:1)

尝试以下步骤:

  1. 引用" Microsoft Office 16.0对象库" (您可能会看到版本2.5.0.0)以及" Microsoft Office Interop Excel" (你可能会看到版本15.0.0),这个版本在VS的ASSEMBLIES EXTENSIONS中找到。

  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
    
  4. <强>更新

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

    EXCEL Interop Files

    这些文件与您的Office软件包或PIA相关(它取决于您的Office版本)。见这里:PIA Libraries

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

答案 1 :(得分:0)

问题出在一个完全不同的领域。该问题与注册管理机构有关。我完全删除了与Office安装和重新安装Office 2016有关的所有注册表项。这解决了问题。谢谢你的回答。