Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >对比excel,用python根据对应内容,向excel插入对应的图片!

对比excel,用python根据对应内容,向excel插入对应的图片!

作者头像
Python与Excel之交
发布于 2021-08-05 07:50:23
发布于 2021-08-05 07:50:23
3.2K02
代码可运行
举报
文章被收录于专栏:Python与Excel之交Python与Excel之交
运行总次数:2
代码可运行

Hi~大家好!我是小刀!

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

材料

一份表格:

需要插入的图片:

EXCEL

excel关于插入对应的内容图片的方法有挺多的,这里讲解我认为最简单的一种,无需VBA代码和工具,只需要一点数据排序技巧即可,下面开始实战。

先选择姓名列,点击数据选项卡,在排序和筛选组下选择升序排序:

根据自己的喜好,设置好存放图片单元格的行高列宽

插入图片,这步可能与其它软件版本不同,但最终结果是插入对应的图片即可:点击插入选项卡,在插图组中选择图片下拉箭头,再选择此设备

在弹出的插入图片窗口中选择需要插入的图片:

插入的图片可能大小不一,所以我们先根据单元格大小调整图片的大小。

调整图片大小时需先把图片属性中的锁定纵横比给去掉,而图片大小最好根据像素设置:

将最前面的一张图片放在最后一个单元格中,接着选择全部图片,然后点击图片格式选项卡,在排序组中选择对齐,然后选择水平居中和纵向分布,最后调整到合适的位置。

结果:

Python

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install 库名

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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..')

结果:

以上就是本文的全部内容了,如果你喜欢或者对你有帮助,请给我点个赞和在看吧!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与Excel之交 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
OpenStack Icehouse私有云实战部署(四)
Compute节点 配置内核网络参数 [root@compute ~]# vim /etc/sysctl.conf net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 [root@compute ~]# sysctl -p 安装所需软件包 [root@compute ~]# yum install openstack-neutron-ml2 openstack-neutron-openvswitch 配置连入keysto
小小科
2018/05/04
2.7K0
OpenStack Icehouse私有云实战部署(四)
openstack安装(29)
[root@compute1 ~]# yum install openstack-neutron openstack-neutron-linuxbridge ebtables ipset -y
陈不成i
2021/05/07
4100
OpenStack icehouse系列之网络节点搭建
我们接着上一篇博文OpenStack icehouse系列之控制节点搭建继续往下开始搭建下面是环境介绍。
DevinGeng
2019/04/09
9340
使用openstack搭建私有云[通俗易懂]
CentOS Linux release 7.6.1810 (Core) 内核版本:3.10.0-957.el7.x86_64
全栈程序员站长
2022/09/14
35.2K0
使用openstack搭建私有云[通俗易懂]
Opensack-T版脚本安装
配置 ;/etc/my.cnf.d/openstack.cnf``/etc/my.cnf.d/
误入歧途
2024/05/08
1230
OpenStack Juno系列之网络节点搭建
apt-get install neutron-plugin-ml2 neutron-plugin-openvswitch-agent \
DevinGeng
2019/04/09
9760
openstack安装(27)
[root@controller ~]#yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge python-neutronclient ebtables ipset
陈不成i
2021/05/07
3680
OpenStack Icehouse私有云实战部署(三)
Networking服务 neutron server节点 在实际部署的架构中,neutron的部署架构可以分为三个角色,即neutron server(neutron服务器)、network node(网络节点)和compute node(计算节点),这里先部署neutron服务器。 安装所需软件包 此处配置的为neutron server服务,根据此前的规划,这里将其部署在控制节点上。 [root@controller ~]# yum install openstack-neutron openstac
小小科
2018/05/04
2.8K0
OpenStack Icehouse私有云实战部署(三)
OpenStack运维之安装Neutron服务
OpenStack网络服务提供了一个API接口,允许用户在云上设置和定义网络连接和地址。这个网络服务的项目代码名称是Neutron。OpenStack网络处理虚拟设备的创建和管理网络基础设施,包括网络、交换机、子网以及由计算服务(nova)管理的设备路由器。高级服务,如防火墙或虚拟私人网络(VPN)也可以使用。
王先森sec
2023/04/24
8870
OpenStack运维之安装Neutron服务
OpenStack集群部署—Neutron计算节点
部署 安装neutron-linuxbridge # 在全部计算节点安装neutro-linuxbridge服务,以compute01节点为例 [root@compute01 ~]# yum install openstack-neutron-linuxbridge ebtables ipset -y 配置neutron.conf # 在全部计算节点操作,以computer01节点为例; # 注意”bind_host”参数,根据节点修改; # 注意neutron.conf文件的权限:root:neutron
院长技术
2020/06/12
8150
OpenStack踩坑之路(3)
使用OpenStack Compute来托管和管理云计算系统。OpenStack Compute是基础架构即服务(IaaS)系统的重要组成部分。主要模块是用Python实现的。
没有故事的陈师傅
2019/07/28
1.6K0
Openstack之Newton
一、组网需求: 1、如下图所示,某用户内网被划分为VLAN 10、VLAN 20、VLAN 30,以实现相互间的2 层隔离; 2、3 个VLAN 对应的IP 子网分别为192.168.10.0/24 、192.168.20.0/24 、192.168.30.0/24,3 个VLAN 通过3 层核心交换机的IP 转发能力实现子网互连。 三、配置要点: 本用例以核心交换机和1 台接入交换机为例说明配置过程。要点如下: 1)在核心交换机配置3 个VLAN,配置下连接入交换机的端口为trunk 口 2)在核心交换机配置3 个SVI 口,分别作为3 个VLAN 对应IP 子网的网关接口,配置对应的IP 地址; 3)分别在3 台接入交换机创建VLAN,为各VLAN 分配Access 口,指定上连核心交换机的trunk 口。本用例以接入交换机Switch A 为例说明配置步骤。
ZHaos
2019/02/27
9890
使用OpenStack Designate构建一个云平台流量监控插件【Open Stack】
了解如何为OpenStack安装和配置一个多租户的DNS-as-a-service (DNSaaS)
Opensource在线文档
2019/11/08
1.3K0
使用OpenStack Designate构建一个云平台流量监控插件【Open Stack】
OpenStack集群部署—Neutron集群
Neutron概述 ​ Neutron是 OpenStack项目中负责提供网络服务的组件,它基于软件定义网络的思想,实现了网络虚拟化下的资源管理。Neutron 的设计目标是实现“网络即服务(Networking as a Service)”,在设计上遵循了基于 SDN 实现网络虚拟化的原则,在实现上充分利用了 Linux 系统上的各种网络相关的技术。
院长技术
2020/06/12
1K0
openstack安装(23)
[root@compute1 ~]# yum install -y openstack-nova-compute sysfsutils
陈不成i
2021/05/07
4700
OpenStack icehouse系列之计算节点搭建
我们接着上一篇博文OpenStack icehouse系列之网络节点搭建继续往下搭建下面是环境介绍
DevinGeng
2019/04/09
7400
Centos7上部署openstack ocata配置详解
之前写过一篇《openstack mitaka 配置详解》然而最近使用发现阿里不再提供m版本的源,所以最近又开始学习ocata版本,并进行总结,写下如下文档
yaohong
2019/09/11
1.7K0
Centos7上部署openstack ocata配置详解
openstack系列-neutron系列安装部署
选项 1 部署了最简单的架构,该架构仅支持将实例附加到提供商(外部)网络。没有自助(私有)网络,路由器或浮动 IP 地址。只有该 admin 特权用户或其他特权用户才能管理提供商网络。
cuijianzhe
2022/06/14
1.3K0
OpenStack云计算之路-Mitaka 版本
1.1 云计算简介 云计算(英语:cloud computing ),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。 云计算是继1980年代
惨绿少年
2018/03/30
6.3K0
(六)OpenStack---M版---双节点搭建---Neutron安装和配置
#systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service #systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service
指剑
2022/07/15
6640
(六)OpenStack---M版---双节点搭建---Neutron安装和配置
相关推荐
OpenStack Icehouse私有云实战部署(四)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档