将图片写入到excel某一列

news2024/11/14 13:24:49

将图片写入到excel某一列
参考视频:https://www.bilibili.com/video/BV1L5411e7Zj?p=1&share_medium=iphone&share_plat=ios&share_session_id=F43BCE3C-CD23-4CF8-B998-C2FE8BD1F0F6&share_source=WEIXIN&share_tag=s_i&timestamp=1644493555&unique_k=eYCgqEs
方法:https://openpyxl.readthedocs.io/en/latest/usage.html#inserting-an-image
在这里插入图片描述
为了使得图片和内容一一对应,先将内容插入到excel中,然后再将图片插入到内容的旁边列
具体代码:

from openpyxl import load_workbook
from openpyxl.drawing.image import Image

def insert_img(
        filename,
        by_col,
        to_col,
        img_folder
):
    '''
    插入图片到 excel
    :param filename: 文件路径
    :param by_col: 依靠的列(A,B,C...)
    :param to_col: 插入到列(A,B,C...)
    :param img_folder: 图片源的文件夹,绝对路径
    :return: None
    '''
    wb = load_workbook(filename)    # 读取传入的文件路径名
    ws = wb.active
    for i,c in enumerate(ws[by_col],start=1):   # i 用于取出excel索引列数字,start=1指定从1开始(excel索引列从1开始,但是openpyxl默认是从0开始)
        # enumerate枚举函数
        name = c.value.split(" ")[-1]
        # print(name)
        img_ffn = os.path.join(img_folder,name + ".jpg")
        imgsize = (200, 125)
        img = Image(img_ffn)
        print(img.path)
        img.width, img.height = imgsize
        print(i,img_ffn)
        try:                     # 如果找不到会崩掉,所以增加异常处理
            ws.add_image(
                img,
                anchor=to_col + str(i)    #锚点,B列+索引,将i的int类型转换成str
            )
        except:
            print(c.value,'匹配不到图片')
    wb.save(filename)

if __name__ == '__main__':
    insert_img(
        '111.xlsx',   # 如果excel表格和py文件在同一文件夹,可以直接只写文件名,如不在同一文件夹,则需要写excel的绝对路径
        'A',
        'B',
        img_folder='D:\python\code\Test\TestScrapy\Imgtest'
    )
    print("over!")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/736167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库第二次作业

目录 一、要求 二、操作 建表 插入数据 1、显示所有职工的基本信息 2、查询所有职工所属部门的部门号,不显示重复的部门号 ​编辑 3、求出所有职工的人数​编辑 4、列出最高工和最低工资 ​5、列出职工的平均工资和总工资 6、创建一个只有职工号、姓名和…

【DDoS攻击检测】基于改进的非洲秃鹫优化算法和一种新的DDoS攻击检测传递函数的特征选择方法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【Visual Studio】智能提示功能消失解决办法

问题 VS2013环境智能提示突然用不了,重启计算机也无效,一下有点不习惯。 解决方法 1、打开 VS2013开发人员提示。 2、输入一下命令,重置VS2013。 devenv.exe /resetsettings

虚拟文件系统(VFS)

为支持各种本机文件系统,且在同时允许访问其他操作系统的文件,Linux内核在用户进程(或C标准库)和文件系统实现之间引入了一个抽象层。该抽象层称之为虚拟文件系统(Virtual File System),简称VFS…

git HEAD detached from

git HEAD detached from 解决,checkout切换分支即可,比如切换到master分支: git checkout master git gerrit code review提交代码HEAD:resf/for/_res/for的提交格式_zhangphil的博客-CSDN博客git gerrit code review提交代码HEAD:resf/for/如…

《 SVG 》三、SVG 图形元素

一、本文概述 本文所介绍 svg 元素&#xff0c;为常用 svg 图形元素&#xff0c;蕴含 “血与肉” 的元素&#xff0c;本文围绕其进行实战应用&#xff1b; 二、 SVG 图形元素 <circle> 绘制正圆&#xff1b;<ellipse> 绘制椭圆&#xff1b;<image> 渲染图…

2023通感一体化系统架构与关键技术白皮书

1 通感一体化业务与性能指标 1.1 通感一体化业务分类 根据通信与感知的相互关系 通信辅助感知类业务&#xff1a;通信的参考信号作为感知信号&#xff0c;实现目标定位、测速、手势识别等业务——高速可靠的通信能力为感知数据的汇聚提供保障&#xff0c;能够进一步提高感知精…

人工智能时代如何加强网络安全

人工智能正在为软件开发人员赋予以前被认为难以想象的新能力。新的生成式人工智能可以提供复杂、功能齐全的应用程序、调试代码或使用简单的自然语言提示添加内嵌注释。 它已准备好以指数方式推进低代码自动化。但与此同时&#xff0c;新一代人工智能可能会为不良行为者提供帮…

Spring MVC多种情况下的文件上传

一、原生方式上传 上传是Web工程中很常见的功能&#xff0c;SpringMVC框架简化了文件上传的代码&#xff0c;我们首先使用JAVAEE原生方式上传文件来进行详细描述&#xff1a; 1.1 修改web.xml项目版本 这里我们创建新的SpringMVC模块&#xff0c;在web.xml中将项目从2.3改为3.1…

SPSS数据排序

1.个案排序 &#xff08;1&#xff09;打开数据文件&#xff0c;选择“数据”——“个案排序”&#xff0c;弹出如下图所示的对话框&#xff0c;选中“树高”&#xff0c;再选择排序&#xff08;默认&#xff09; &#xff08;2&#xff09;选中“枝下高”&#xff0c;移到右边…

【IDEA】IDEA 版 Postman 新版发布,功能强大!

介绍 Restful Fast Request 是 IDEA 版 Postman&#xff0c;它是一个强大的 restful api 工具包插件&#xff0c;可以根据已有的方法帮助您快速生成 url 和 params。Restful Fast Request API 调试工具 API 管理工具 API 搜索工具。它有一个漂亮的界面来完成请求、检查服务…

智慧校园管理系统前台任意文件上传

如果沉醉满足于自己以往的历史就无异于生命大限的终临&#xff0c;人生旅程时刻处于“零公里”处。那么&#xff0c;要旨仍然应该是首先战胜自己&#xff0c;并将精神提升到不断发展着的生活所要求的那种高度&#xff0c;才有可能使自己重新走出洼地&#xff0c;亦步亦趋跟着生…

如何在Windows 11中轻松恢复意外删除的Chrome书签

当您意外删除了 Chrome 书签或书签文件夹时&#xff0c;您可以通过以下方法在 Windows 11 中恢复它们。Windows 11 中的 Chrome 浏览器提供了方便的恢复功能&#xff0c;让您可以轻松还原被删除的书签。 打开 Chrome 浏览器并导航到右上角的菜单按钮&#xff0c;点击打开菜单选…

ROS1到ROS2迁移教程(以rslidar_to_velodyne功能包为例)+ ROS2版本LIO-SAM试跑

一、引言 1、本博文主要目的是将rslidar_to_velodyne功能包的ros1版本转换为ros2版本 2、内容会包含ROS1到ROS2迁移技巧&#xff0c;是自己总结的一套简单的流程&#xff0c;可以保证ROS2下的代码试跑成功&#xff0c;如果需要将代码进一步转化为类的实现的方式&#xff0c;自…

开源教育对话大模型 EduChat

文章目录 一、&#x1f680; 前言二、&#x1f916; 本地部署三、&#x1f468;‍&#x1f4bb; 使用示例四、&#x1f50e; 总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、&#x1f680; 前言 教育是一项对人类身心发展产生影响的社会实践…

Elasticsearch 8.X 聚合查询下的精度问题及其解决方案

1、线上环境问题 咕泡同学提问&#xff1a;我在看runtime文档的时候做个测试&#xff0c; agg求avg的时候不管是double还是long&#xff0c;数据都不准确&#xff0c;这种在生产环境中如何解决啊&#xff1f; 2、问题归类及出现场景 上述问题可以归类为&#xff1a;Elasticsear…

【计算机组成与体系结构Ⅰ】实验3 微程序控制器实验

一、实验目的 了解微程序控制器的组成原理 二、实验设备 TEC-4实验系统、万用表 三、实验内容 1&#xff1a;阅读微指令格式和微程序控制器的组成&#xff0c;微指令由操作控制和顺序控制两部分组成&#xff0c;1条微指令的字长35位&#xff08;一个存储单元35位&#xff0c;采…

xml建模----详细完整,易懂结合代码分析

目录 一.XML建模是什么 二.XML建模有什么作用&#xff1f;&#xff1f;&#xff1f; 三.XML建模的案例 以config.xml为例 一.XML建模是什么 将XML配置文件中的元素、属性、文本信息转换成对象的过程叫做XML建模 二.XML建模有什么作用&#xff1f;&#xff1f;&#xff1f; …

Git命令操作【全系列】

Git常用命令操作 1 基础命令 ①git config --global user.name [‘你的用户名’]&#xff1a;查看/设置 git config --global user.name ziyi&#xff1a;设置用户名为ziyi git config --global user.name&#xff1a;查看用户名 ②git config --global user.email [‘你的邮…

React 在Dva项目中修改路由配置,并创建一个自己的路由

之后的话 我们还是来看一下Dva路由的配置 首先 我们在项目刚创建完 他就给了我们一个路径 叫routes 然后 IndexPage.js 是最初的一个组件 之前我们也用过了 然后 我们看到 src目录下的 index.js 这里 就有一个路由的匹配 他加载的就是 同目录下 一个 router的文件 我们点开…