[Excel] 敬佩 wps"顽强" 的生命力
今天一位测试同事找我:"我们的 excel 组件是不是有问题? 我做了一个流程,excel 最小化的时候运行,就失败; 不最小化,就运行成功"
了解我的人都应该知道我真的很讨厌处理 excel 方面的问题。 因为这属于环境问题,而且可能涉及到 OFFICE 和 WPS,我能做的事情真的很少···· 但身不由己啊,有 bug,那就必须要解决呀···
环境
win10 64位
以前装过wps, 但卸载了
现在装的是OFFICE
复现
设计器新建流程,1个excel组件, 以【合并单元格】为例(事实上,任意excel相关组件应该都行···)
1. 不打开任何excel文件的情况下, 运行组件,运行成功。 此时xlsx文件仍处打开状态。
2. 点击右上角的最小化按钮,运行组件,报错 "# pywintypes.com_error: (-2147352567, '发生意外。', (0, None, None, None, 0, -2146827284), None)"
3. 激活上述的xlsx文件,打开另外一个程序, 此时xlsx文件不在页面最顶端。 运行组件,成功。 😊
解决
1.关闭所有excel文件,任务管理器再杀一遍关于excel相关的进程
2. 因为了解到此电脑之前装过wps,所以肯定与其有关。 虽然卸载了,但我们要相信国产软件的生命力。那可是杠杠的。
找到其当时的安装目录,以 "D://wps" 为例, 里面有2个文件夹(同事应该安装了2次)。
(下图是回收站里的,已经被我删了···,)
3. 此时我想删除这2个文件夹, 但有一个文件夹始终提示被占用,无法删除。那么进入该文件夹,一个文件一个文件地删除。
有一个dll(qingnse64.dll)始终无法删除。 用了工具查找,发现其注入到了explorer.exe里,又上网查阅"https://blog.csdn.net/u011643463/article/details/86515271", 重启explorer.exe后,再次尝试删除此dll,竟然失败了!
郁闷至极,再次用工具查找,发现此dll又注入到了钉钉的应用程序中!关闭钉钉,再次删除,成功了!!!
4. 打开系统应用, 查找OFFICE, 并修复。
![fe8a0cff04de48da969e00f9936b6762_lALPJxfwJrkxzXNAhrNA18_863_538.png](https://support.i-search.com.cn/upload/bbs/20220317/fe8a0cff04de48da969e00f9936b6762_lALPJxfwJrkxzXNAhrNA18_863_538.png)
![2a2dce03c974468a9e588c4a7d01609b_lALPJv8gShl53qTNA9XNAzE_817_981.png](https://support.i-search.com.cn/upload/bbs/20220317/2a2dce03c974468a9e588c4a7d01609b_lALPJv8gShl53qTNA9XNAzE_817_981.png)
后续
测试小妹妹问我:"你怎么没遇过这种问题?"
我:"我从来不用xxxxxxxxx!!!!"
厉害了。。这是我没想到的。。
如果是以文件的方式操作 excel 文件,那么 Office 和 Wps 应该都可以操作。
如果是以操作 com 接口的方式,那么问题就悬疑了。 涉及到 软件的安装、默认设置、操作时的权限、安装软件的版本, 方方面面,真的很烦。
python 操作 excel 文件 一般是 xlwings(com 接口) 和 openpyxl(文件方式), 我个人比较喜欢 xlwings, 因为 office 没有广告··· 我也知道 wps 如果充钱了,会员没有广告。 但这类国产软件让我有点退却······
而国外大神基本都用 Office,他们又不用 wps,所以在操作 wps 时,肯定有各种莫名其妙的问题。
说到底,都是我自己菜, 为什么不自己写个操作 wps 的库么?(但好像根本找不到 wps 的 api 文档噢······)
目前很多操作都支持 wps 了。导出 excel 还不行。所以还请想办法尽快做兼容。因为很多政府单位没有 wps。
关于系统修复的图始终上传失败····