问题:xlwings一直运行正常,操作系统迁移到wtg上,xlwings调用电子表格操作,出现以下提示:
Building prefix dict from the default dictionary ...
Loading model from cache D:\Personal\TEMP\jieba.cache
Loading model cost 1.349 seconds.
Prefix dict has been built successfully.
Traceback (most recent call last):
File "D:\Crawler\focus.py", line 103, in <module>
recognize(targetWord,includeKeysWord)
File "D:\Crawler\focus.py", line 96, in recognize
output(x, y)
File "D:\Crawler\focus.py", line 58, in output
app=xlw.App(visible=False,add_book=False)
File "C:\Language\Python\Python3\lib\site-packages\xlwings\main.py", line 210, in __init__
self.impl = xlplatform.App(spec=spec, add_book=add_book)
File "C:\Language\Python\Python3\lib\site-packages\xlwings\_xlwindows.py", line 299, in __init__
self._xl = COMRetryObjectWrapper(DispatchEx('Excel.Application'))
File "C:\Language\Python\Python3\lib\site-packages\win32com\client\__init__.py", line 113, in DispatchEx
dispatch = pythoncom.CoCreateInstanceEx(clsid, None, clsctx, serverInfo, (pythoncom.IID_IDispatch,))[0]
pywintypes.com_error: (-2147221005, '无效的类字符串', None, None)
思考:注册表名查找
注意到self._xl = COMRetryObjectWrapper(DispatchEx('Excel.Application'))
我的电脑中没有安装Excel,用的是WPS中的电子表格ET。WPS电子表格在注册表中叫什么名字呢?
打开regedit,搜索“WPS.Application”时,找到"KWPS.Application"
WPS电子表格应该是另一个,沿着注册表上下找,找到"KET.Application"
解决:修改_xlwindows.py
python安装目录下找到以上提示中的_xlwindows.py,备份为_xlwindows.py.bak,修然修改_xlwindows.py
self._xl = COMRetryObjectWrapper(DispatchEx('Excel.Application'))
改为:
self._xl = COMRetryObjectWrapper(DispatchEx('KET.Application'))
解决!
将操作系统迁移到WTG后,使用xlwings调用电子表格出现`pywintypes.com_error: (-2147221005, ‘无效的类字符串‘, None, None)`错误。问题在于系统中安装的是WPS而非Excel。通过查找注册表,发现WPS电子表格对应的类名为'KET.Application'。修改xlwings的_xlwindows.py文件,将'Excel.Application'替换为'KET.Application',成功解决调用问题。"
107682243,8556824,小程序实现滑动金刚区与进度条,"['小程序开发', '前端框架', 'UI设计', 'css3动画', '交互设计']

2917

被折叠的 条评论
为什么被折叠?



