盘点一个Python自动化办公的需求——一键批量插图到Excel指定单元格

发布时间 2024-01-10 19:30:01作者: dcpeng

大家好,我是皮皮。

一、前言

前几天在Python白银交流群【上海新年人】问了一个Python自动化办公的问题,问题如下:大佬们,昨天我在做插入excel图片的时候想起一个需求,好像挺难办的,也蛮现实的。比如每个图片是有名称的,但在做excel的时候,能不能按照excel中的名称调用图片插入。就像下面这样子,插入在B列对应的名称边上。

image.png

相当于你现在的图片名称已经命名好了,你现在只需要插入到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也可以的,就是名称匹配而已。我们这个是直接固定在单元格里,单元格多大,图片就多大。

image.png

后来【论草莓如何成为冻干莓】直接问到了这份代码:

image.png

顺利地解决了粉丝的问题。

需要一键批量插图到Excel指定单元格代码的小伙伴们可以找后台找我威信,加上后给你分享,万一你以后在工作这也遇到类似这样的需求的时候,也有备无患了。

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Pandas数据提取的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【上海新年人】提出的问题,感谢【瑜亮老师】、【论草莓如何成为冻干莓】给出的思路和代码,感谢【莫生气】、【冯诚】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

image.png