今
日
鸡
汤
读书好处心先觉,立雪深时道已传。
大家好,我是皮皮。
一、前言
前几天在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元无门槛券
私享最新 技术干货