首页 > 解决方案 > 为什么python中的win32com找不到Excel.Application?

问题描述

我有使用 win32com 在 python 中打开 Excel 并编写数据透视表的代码。该代码在我的台式计算机上完美运行,但在我的笔记本电脑上失败。两台计算机都在 Windows 10 的 Anaconda 环境中运行 Python 3.7。我在这行代码中收到以下错误:

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”。

我在显示错误的计算机上尝试了以下操作:

以上任何一项都没有运气。提前感谢您提供的任何帮助。

标签: excelpython-3.xwin32com

解决方案


推荐阅读