用 Python 向 Excel 插入对应名称的图片

有一份excel姓名名单,想要根据姓名在旁边插入对应的图片图片都是命名好的,如果自己一个一个插入需要很久,所以跟大家分享使用python将excel批量插入对应名称图片的方法,下面就让我们来一起操作下吧!

表格如下:

需要插入的图片如下:

在实现之前,我们需要明确知道具体的任务目标,是利用python根据对应内容,向excel插入对应的图片;而在材料中我们得知,excel表格A列为对应内容B列为需要插入对应的图片列,图片具有特定的名称。 

整理下思路:

① 取得excel表格中A列的对应内容
② 根据内容取出图片
③ 根据A列对应内容,向B列写入图片

所以本文用python向excel插入图片,使用的库是openpyxlos,这两个都是老熟人了,安装可用pip命令进行安装

pip install 库名

openpyxl库对excel文件进行读取和写入,其中用到openpyxl库中的Image模块,而他是基于PIL库构造而成,PIL库大家也知道,是一个编辑图片的神器。os库用于获取图片路径。

下面是完整源码,相关内容后面都添加了注释:

import openpyxl
from openpyxl.drawing.image import Image
import os

excel_file_path = 'image.xlsx'
image_name_column = 'A'
image_column = 'B'
image_path = './图片'

wb = openpyxl.load_workbook(excel_file_path)  # 打开excel工作簿
ws = wb.active  # 获取活跃工作表
for i, e in enumerate(ws[image_name_column], start=1):  # 取出第A列内容,从第二个算起
    image_file_path = os.path.join(image_path, f"{e.value}.jpg")  # 图片路径
    try:  # 因获取A列的第一行是标题,这里防止报错结束程序
        img = Image(image_file_path) # 获取图片
        img.width, img.height = (120, 120)  # 设置图片大小
        # 调整表格列宽和行高
        ws.column_dimensions[image_column].width = 15  
        ws.row_dimensions[i].height = 90
        ws.add_image(img, anchor=image_column + str(i))  # 插入对应单元格
    except Exception as e:  
        print(e)
wb.save(excel_file_path)  # 保存
print('save..')

结果: 

搞定~ 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值