提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
xlwings操作wps
前言
最近写了一个小工具,需要读写excel,选择了xlwings库。现在很多电脑使用wps
找了各种资料,网上普遍存在以下两种方法
方式一、使用参数spec
app = xw.App(spec=‘wpsoffice’)
测试无效,报错
spec is ignored on Windows.
方式二、更改xlwings源代码
找到单元 xlwings._xlwindows
self._xl = COMRetryObjectWrapper(DispatchEx("Excel.Application"))
更改为
self._xl = COMRetryObjectWrapper(DispatchEx("ket.Application"))
测试成功,但是更改源代码始终觉得不合适
在第二种方法基础上,分析源代码
依次调用如下函数,最后到达方法二的代码处
分析代码,只需要,创建一个impl,作为参数传入,就可以,参照原始代码
self.impl = engines.active.apps.add(
spec=spec, add_book=add_book, visible=visible
).impl
if visible or visible is None:
self.visible = True
更改如下:创建一个impl传入
app = xw.App(visible=False, add_book=False)
更改为
_xl = COMRetryObjectWrapper(DispatchEx("ket.Application"))
impl = xw._xlwindows.App(visible=False, add_book=False, xl=_xl)
app = xw.App(visible=False, add_book=False, impl=impl)
测试读写都正常,本人也是刚开始接触,如果写的不对,希望大家指正