Python openpyxl获取Excel内图片数据报错,如何复制内部图片?
问题解决:openpyxl复制Excel内部图片报错处理
问题原因
你调用img_obj.image或img_obj.image_data时出现报错,是因为openpyxl中ws._images返回的Image对象本身就是可直接用于插入的图片对象,它并没有image或image_data这些属性。你错误尝试访问不存在的属性,导致了AttributeError。
修正后的代码
直接使用从_images中获取的Image对象调用add_image,即可完成内部图片的复制:
import openpyxl as op path = r"D:\input" wb = op.load_workbook(path + "/test.xlsx") ws = wb.active # 获取第一个内部图片对象 img_obj = ws._images[0] # 直接插入到目标单元格D6 ws.add_image(img_obj, "D6") # 保存修改后的工作簿 wb.save(path + "/modified_test.xlsx")
额外说明
- 若需要复制多个内部图片,遍历
ws._images列表即可,每个元素都是可用的图片对象。 _images是openpyxl的私有属性,当前3.1.2版本可正常使用,但后续版本可能存在变动,使用时注意版本兼容性。
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

