冰炎梦幻 发表于 2023-3-8 10:07

关于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

这样即可以兼容两种不同的版本了。


QingTianGG 发表于 2023-3-8 10:39

楼主给力,感谢分享

aa2923821a 发表于 2023-3-8 10:40

谢谢学习了。。

chayunyuxiang 发表于 2023-3-8 10:47

Excel2img这个包怎么使用?

冰炎梦幻 发表于 2023-3-8 11:03

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)

chen0527 发表于 2023-3-8 11:07

这玩意怎么用的

choujie1689 发表于 2023-3-8 11:18

没有用过这个库,学习一下,用pandas比较多

wqipk 发表于 2023-3-8 14:52

感谢分享

scbzwv 发表于 2023-3-8 16:55

感谢分享

pioneer0118 发表于 2023-3-8 21:21

不错,学习了!
页: [1] 2
查看完整版本: 关于Python调用excel2img不适用OFFICE2016的解决方法