电脑python3使用pywin32操作excel文件就报错。
报错信息如下:
Traceback (most recent call last):
File "F:Pythonlibsite-packagesxlwings\_xlwindows.py", line 288, in __init__
File "F:Pythonlibsite-packageswin32comclient\__init__.py", line 114, in DispatchEx
File "F:Pythonlibsite-packageswin32comclient\__init__.py", line 96, in Dispatch
File "F:Pythonlibsite-packageswin32comclient\__init__.py", line 37, in __WrapDispatch
File "F:Pythonlibsite-packageswin32comclientgencache.py", line 183, in GetClassForCLSID
File "F:Pythonlibsite-packageswin32comclientgencache.py", line 226, in GetModuleForCLSID
File "F:Pythonlibsite-packageswin32comclientgencache.py", line 266, in GetModuleForTypelib
File "F:Pythonlibsite-packageswin32comclientgencache.py", line 558, in AddModuleToCache
AttributeError: module 'win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x9' has no attribute 'CLSIDToClassMap'
解决方法:
运行下面代码,找到缓存文件所在路径,然后删除gen_py
文件夹下的所有包含这一堆数字的文件夹
from win32com.client.gencache import EnsureDispatch
import sys
xl = EnsureDispatch("Word.Application")
print(sys.modules[xl.__module__].__file__)
执行上面代码,找到
C:UsersaiyuAppDataLocalTempgen_py3.6 0020905-0000-0000-C000-000000000046x0x8x7\_Application.py
然后删除对应的文件夹问题就解决了