Невозможно привести COM-объект ... к интерфейсному типу "Microsoft.Office.Interop.Excel.Application"

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

Возможная причина:

Проблема в том, что офис "испорчен" или в реестре остались следы неудачных установок других версий MS Office.


Что делать:

1) Пробуем восстановить офис:

  • Установка и удаление программ
  • Microsoft Office - Изменить - Восстановить.
  • Перегружать машину не нужно, пробуем печатать...

2) Если восстановление не помогло:

Ручное решение описано тут: https://stackoverflow.com/questions/12957595/error-accessing-com-components

  1. Ищем HKEY_CLASSES_ROOT\Interface\{000208D5-0000-0000-C000-000000000046}\TypeLib

    на 64-х разрядной windows (если офис 32-х разрядный) надо искать раздел HKEY_CLASSES_ROOT\Wow6432Node\Interface\{000208D5-0000-0000-C000-000000000046}\TypeLib

    если же офис 64-х разрядный, то ищем по пути выше, без Wow6432Node

  2. Запоминаем guid и версию из раздела (у меня {00020813-0000-0000-C000-000000000046}, версия 1.7)
  3. Ищем этот guid среди разделов в HKEY_CLASSES_ROOT\TypeLib
  4. Делаем на всякий случай копию раздела с этим guid (HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046})
  5. Удаляем подразделы других версий с пустым содержимым (у клиента была также версия 1.7 и пустой подраздел 1.8, удаление 1.8 исправило ошибку)
  6. Перезагружаться не надо


Обсуждалось на форуме

Эта статья помогла вам?

Сервис поддержки клиентов работает на платформе UserEcho