关于Python调用excel2img不适用OFFICE2016的解决方法
本帖最后由 冰炎梦幻 于 2023-3-8 14:34 编辑声明:本人不是程序员。对各种语言一窍不通,写程序全靠搜索、复制和粘贴。
如果因为我的代码造成的BUG,可以反馈,但估计我修复不了。
{:301_978:}
本身事件是希望通过表格生成PPT,释放大家写PPT的时间。公司客户经理经常吐槽我管理的业务汇报PPT难做。
中间出现这么一个小插曲,需要把xlsx中的某sheet截图插入到PPT中。网上学习了方法,下载了Excel2img这个包。
最后感觉没有任何问题的时候,却弹了错:
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行由
for shape in rng.parent.Shapes: pass
修改为:
try:
for shape in rng.parent.Shapes: pass
except AttributeError:
for shape in rng.Parent.Shapes: pass
这样即可以兼容两种不同的版本了。
楼主给力,感谢分享 谢谢学习了。。 Excel2img这个包怎么使用? chayunyuxiang 发表于 2023-3-8 10:47
Excel2img这个包怎么使用?
import excel2img
excel2img.export_img("test.xlsx", "test.bmp", "", "Sheet2!B2:C15")
test.xlsx是你的表格文件
test.bmp是保存的文件和格式
Sheet2!B2:C15是截取的表单和范围
或者也可以截图整个Sheert
import excel2img
excel2img.export_img("Excel File Full Path", "Target Image full Path", "Excel SheetName", None)
这玩意怎么用的 没有用过这个库,学习一下,用pandas比较多 感谢分享 感谢分享 不错,学习了!
页:
[1]
2