本帖最后由 冰炎梦幻 于 2023-3-8 14:34 编辑
声明:本人不是程序员。对各种语言一窍不通,写程序全靠搜索、复制和粘贴。
如果因为我的代码造成的BUG,可以反馈,但估计我修复不了。
本身事件是希望通过表格生成PPT,释放大家写PPT的时间。公司客户经理经常吐槽我管理的业务汇报PPT难做。
中间出现这么一个小插曲,需要把xlsx中的某sheet截图插入到PPT中。网上学习了方法,下载了Excel2img这个包。
最后感觉没有任何问题的时候,却弹了错:
[Python] 纯文本查看 复制代码 Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\ICTexcel2PPT_test\截图.py", line 6, in <module>
excel2img.export_img("IT前评估表格模板.xlsx", "IT前评估表截图.png", "", "IT前评估表测算!A2:R29")
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\excel2img\excel2img.py", line 113, in export_img
for shape in rng.parent.Shapes: pass
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\win32com\client\__init__.py", line 580, in __getattr__
raise AttributeError(
AttributeError: '<win32com.gen_py.Microsoft Excel 16.0 Object Library.Range instance at 0x65400496>' object has no attribute 'parent'
经过搜索,有一个老师提出了解决方法:
https://blog.csdn.net/weixin_43056332/article/details/128249489
在Excel 2016文件格式中,属性parent更改为Parent。由于Python区分大小写,因此无法找到适当的属性。
那么为了适应两种不同的版本,我对excel2img.py进行了异常捕获:
将excel2img.py的113行由
[Python] 纯文本查看 复制代码 for shape in rng.parent.Shapes: pass
修改为:
[Python] 纯文本查看 复制代码 try:
for shape in rng.parent.Shapes: pass
except AttributeError:
for shape in rng.Parent.Shapes: pass
这样即可以兼容两种不同的版本了。
|