Почему win32com в python не находит приложение Excel.Application? - PullRequest
1 голос
/ 12 января 2020

У меня есть код, который использует win32com, чтобы открыть Excel в python и записывает сводную таблицу. Код отлично работает на моем настольном компьютере, но не работает на моем ноутбуке. Оба компьютера работают Python 3.7 в среде Anaconda на Windows 10. В этой строке кода появляется следующая ошибка:

Excel = win32com.client.gencache.EnsureDispatch('Excel.Application')
Traceback (most recent call last):
  File "C:\Users\narob\AppData\Local\Continuum\anaconda3\envs\Microtech\lib\site-packages\win32com\client\dynamic.py", line 89, in _GetGoodDispatch
    IDispatch = pythoncom.connect(IDispatch)
pywintypes.com_error: (-2147221005, 'Invalid class string', None, None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "test_excel_pivot_tables.py", line 6, in <module>
    Excel = win32com.client.Dispatch('Excel.Application')
  File "C:\Users\narob\AppData\Local\Continuum\anaconda3\envs\Microtech\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
  File "C:\Users\narob\AppData\Local\Continuum\anaconda3\envs\Microtech\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName
    return (_GetGoodDispatch(IDispatch, clsctx), userName)
  File "C:\Users\narob\AppData\Local\Continuum\anaconda3\envs\Microtech\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch
    IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2147221005, 'Invalid class string', None, None)

Я понимаю, что это означает, что win32com не может правильно найти «Excel.Application».

Я попробовал следующее на компьютере, который показывает ошибку:

  • Переустановка pywin32 (и запуск сценария после установки)
  • Переустановка Excel
  • Проверка реестра - Excel.Application обнаруживает
  • Попытка Excel.Application.16
  • Попытка других методов отправки в win32com
  • Использование необработанного значения CLSID

Не повезло ни с одним из вышеперечисленных. Заранее благодарим за любую помощь, которую вы можете предоставить.

...