Python 提取Excel中的图片并保存

excel 第一列是字符,第二列是图片

from email.mime import image
from openpyxl import load_workbook
from openpyxl_image_loader import SheetImageLoader
def extract_images(slsx_fn):
    
    xlspath=r'c:/'#excell路径
    savedir="c:/" #图片保存路径
    ws=load_workbook(xlspath+slsx_fn).worksheets[0]
    image_loader=SheetImageLoader(ws)
    for index,row in enumerate(ws.rows,start=1):
        if image_loader.image_in(f'B{index}'):
            image=image_loader.get(f'B{index}')
            name=row[0].value
            image.save(savedir+name+'.jpg')
extract_images('shao.xlsx')

参考:

Python 批量提取Excel中的图片,图片文件名按指定列存储_霍蛋的博客-CSDN博客,

他的代码如下:

from openpyxl import load_workbook
from openpyxl_image_loader import SheetImageLoader

path = r'C:/Users/an/Desktop/guang2/'   # Excel文件路径
saveDir = "C:/Users/an/Desktop/guang2/tu/"  # 图片存储路径

wb = load_workbook(path + 'a.xlsx')  # Excel文件名
ws = wb['Sheet1']
image_loader = SheetImageLoader(ws)
num = ws.max_row  # 总行数,我也不知道为什么是row

for i in range(2, num+1):  #  从第2行开始,总行数要+1
    try:
        name = ws['A'+str(i)].value  # A列的文件名
        # print(i)
        image = image_loader.get('C'+str(i)) # C列的图片
        image.save(saveDir + name + ".jpg") # 以Ai为名,存图片Ci
    # 排除没有图片,或图片超出单元格的情况
    except ValueError: 
        print("caonm这一行没有图片:" ,i)
'''
测试
image=image_loader.get('C2')  # 提取C2中的图片
image.show()
'''

你可能感兴趣的:(python,开发语言,后端)