Исключения из Excel API после понижения с 2013 до 2010

1

После перехода с Excel 2013 на 2010 (например, удаление 2013 года и установка 2010), когда я пытаюсь получить доступ к Excel OM из моей надстройки следующим образом:

if (this.Application.ActiveWorkbook == null)
{
    return;
}

Я получаю следующее исключение:

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

Для решения проблемы я предпринял следующие шаги, но никто из них не работал:

  • Отремонтирована офисная установка
  • Удалено и переустановлено
  • Очищено все служебные 15 ссылок из реестра
  • Перерегистрированный Excel ("C:\Program Files (x86)\Microsoft Office\Office14\excel.exe"/o)

Однако ничего не работает. Есть ли что-то, что мне не хватает, или я действительно должен вытереть машину?

EDIT: Я предполагаю, что в реестре все еще есть конфликт, но я понятия не имею, где...

Спасибо, в adv!

Теги:
excel
visual-studio-2010

1 ответ

2
Лучший ответ

Нашел решение - я забыл удалить одну ссылку на Excel 2013:

HKEY_CLASSES_ROOT\TypeLib {00020813-0000-0000-C000-000000000046}\1,8

После удаления 1.8 мой исправленный реестр выглядит следующим образом:

Изображение 174551

...

Изображение 174551

Кредит: http://www.c-sharpcorner.com/Forums/Thread/203666/unable-to-cast-com-object-of-type-microsoft-office-inte.aspx

  • 0
    Отлично! отлично работает с понижениями с 2010 по 2007 тоже!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню