excel - 为什么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”。
我在显示错误的计算机上尝试了以下操作:
- 重新安装 pywin32(并运行安装后脚本)
- 重新安装 Excel
- 检查注册表 - Excel.Application 出现
- 尝试 Excel.Application.16
- 在 win32com 中尝试其他调度方法
- 使用原始 CLSID 值
以上任何一项都没有运气。提前感谢您提供的任何帮助。
解决方案
推荐阅读
- javascript - React setState 不适用于 if 语句
- postgresql - 混合 SRID 触发阻止 qgis 提交更改
- java - LS 在 LSSerializer 中代表什么?在 org.w3c.dom.ls.LSSerializer 中说
- reactjs - 反应详尽的deps规则,从自定义钩子中标记缺少的依赖项
- regex - 带有-replace正则表达式的Powershell脚本不起作用
- javascript - 如何在其他操作之前从一个操作中获取数据?VUEX/NUXT
- laravel - Nakama 正在使用 docker-compose up 命令从命令行运行,但无法从 URL http://127.0.0.1:7350/ 访问它可能是什么问题?
- python - 将多个dfs连接为熊猫中的列表对象时出现InvalidIndexError
- python - 未能在 Python 单元测试中跨测试保存信息
- android - ViewModels + Hilt:不能将使用 JVM 目标 1.8 构建的字节码内联到使用 JVM 目标 1.6 构建的字节码中