from openpyxl import load_workbook
from PIL import Imagefrom openpyxl import load_workbook
wb = load_workbook(r'C:\Users\Administrator\Downloads\output1111.xlsx')
ws = wb[wb.sheetnames[0]]
for image in ws._images:data= image.anchor._fromif image.format=='gif':with open(f'C:\\Users\\Administrator\\Desktop\\hello\\row_{data.row}_col_{data.col}.gif', 'wb') as output_gif:output_gif.write(image._data())if image.format=='png':with open(f'C:\\Users\\Administrator\\Desktop\\hello\\row_{data.row}_col_{data.col}.png', 'wb') as output_gif:output_gif.write(image._data())print(image.anchor._from)if image.format=='jpg':with open(f'C:\\Users\\Administrator\\Desktop\\hello\\row_{data.row}_col_{data.col}.jpg', 'wb') as output_gif:output_gif.write(image._data())print(image.anchor._from)
- 优化更新后有多张图片
from openpyxl import load_workbookwb = load_workbook(r'E:\odoo\odoo16\output1111.xlsx')
ws = wb[wb.sheetnames[0]]
i = 1def find_fially(picture_name, row_list):seq = int(picture_name.split('_')[1])picture_name = f'{name}_{seq + 1}'if picture_name in row_list:return find_fially(picture_name, row_list)return picture_namerow_list = []
for image in ws._images:data = image.anchor._fromname = ws.cell(row=data.row + 1, column=1)._valuepicture_name = f'{name}_{i}'if picture_name not in row_list:i = 1else:picture_name = find_fially(picture_name, row_list)row_list.append(picture_name)with open(f'E:\\{picture_name}.{image.format}', 'wb') as output_gif:output_gif.write(image._data())