使用openpyxl在excel中查找图像并删除图像

时间:2019-02-07 13:24:27

标签: excel python-3.x image openpyxl

我有一个优势,即我可以使用openpyxl执行多个任务,例如读取和修改单元格中的数据。有一个图像和形状存在于同一个Excel中,即时消息试图删除/删除它,但我找不到任何模块来实现它。我可以添加图片,但无法删除。有什么可能的方法来从openpyxl中删除图像

openpyxl.reader.drawings.find_images()尝试使用此模块,但不确定其实现方式

for image in sheet._images:
    print(image)

2 个答案:

答案 0 :(得分:1)

wb['worksheet']._images

以上提供了如上所述的图像列表,然后您可以del索引要删除的图像。

del wb['worksheet']._images [1]

[1]是要删除的图像的样本索引,并且一如既往,不要忘记保存。

wb.save('wb.xlsx')

然后应删除图像。

PS-这是我的第一个SO答案,请随时给我一些提示!

答案 1 :(得分:0)

我遇到了同样的问题,我可以像这样删除所有图像。

sheet._images = []

但在我的情况下,我不得不删除所有 png 文件,所以我是这样解决的。

images = []
for sheet in wb:     
    for image in sheet._images:
        if image.path[-3:] !="png":
            images.append(image)
            
    sheet._images =   images