今
日
鸡
汤
读书好处心先觉,立雪深时道已传。
大家好,我是皮皮。
一、前言
前几天在Python白银交流群【上海新年人】问了一个Python自动化办公的问题,问题如下:大佬们,昨天我在做插入excel图片的时候想起一个需求,好像挺难办的,也蛮现实的。比如每个图片是有名称的,但在做excel的时候,能不能按照excel中的名称调用图片插入。就像下面这样子,插入在B列对应的名称边上。
相当于你现在的图片名称已经命名好了,你现在只需要插入到Excel中,图片名称(以单元格命名)所对应的那个单元格里边。单个插入很简单的,他自己也实现了,就是批量进行操作的时候,有些有心无力了。代码如下:
from?openpyxl.drawing.image?import?Image
pic_path?=?r'C:\Users\Administrator\Desktop\图片练习'
wb?=?load_workbook(r'C:\Users\Administrator\Desktop\练习2.xlsx')
ws?=?wb.active
pic_list?=?[os.path.join(pic_path,i)?for?i?in?os.listdir(pic_path)?if?i.endswith('.jpg')]
new_size?=?(90,90)
num?=?2
for?i,pic?in?enumerate(pic_list,start=1):
image?=?Image(pic)
image.width,image.height?=?new_size
ws.row_dimensions[num].height?=?80
ws.column_dimensions['b'].width?=?12
ws.add_image(image,'b'?+?str(num))
num?+=?2
wb.save(r'C:\Users\Administrator\Desktop\练习2.xlsx')
二、实现过程
这里【论草莓如何成为冻干莓】给了一个思路:仅用excel做,vba也可以的,就是名称匹配而已。我们这个是直接固定在单元格里,单元格多大,图片就多大。
后来【论草莓如何成为冻干莓】直接问到了这份代码:
顺利地解决了粉丝的问题。
领取专属 10元无门槛券
私享最新 技术干货