Ошибка Microsoft.Office.Interop.Excel при инициализации (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. Есть ли другой способ доступа к файлам Excel с установленным Office 2016 (PIA)

Это ошибка, которую я получаю, когда пытаюсь запустить код

Невозможно привести объект COM типа "System.__ComObject" к типу интерфейса "Microsoft.Office.Interop.Excel.Application". Эта операция завершилась неудачно, поскольку вызов QueryInterface в компоненте COM для интерфейса с IID '{000208D5-0000-0000-C000-000000000046}' не выполнен из-за следующей ошибки: Интерфейс не зарегистрирован (Исключение из HRESULT: 0x80040155).

3 ответа

Попробуйте эти шаги:

  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), вы должны выбрать их, как показано ниже:

EXCEL Interop Files

Эти файлы могут быть связаны с вашим пакетом Office или через PIA (это зависит от версии Office). Смотрите здесь: ПИА Библиотеки

Если вы не видите DLL, как указано выше, загрузите и установите PIA на свой компьютер.

У нас была эта ошибка на одном из наших компьютеров. Мы запустили « Приложения и функции» -> « Быстрое восстановление » в Office 365 , и это устранило проблему.

Проблема была в совершенно другой области. Проблема была связана с реестром. Я полностью удалил все ключи реестра, связанные с установкой Office, и переустановил Office 2016. Это устранило проблему. Спасибо за ответы.

Другие вопросы по тегам