python 批量将图片存入excel单元格内
python 批量将图片存入excel单元格
- 示例代码1
- 示例代码2
示例代码1
https://blog.csdn.net/wuyoudeyuer/article/details/128185284
# -*- coding: utf-8 -*-
# @Time : 2022-12-05
# @Author : Carl_DJ'''
实现功能:在excel中,对应的名称后面,插入图片'''import openpyxl,PIL
from openpyxl.drawing.image import Image
import os#excel文件路径
excel_path = './pic/image.xlsx'#图片名称为A列
img_name_column = 'A'#图片写入B列
img_column = 'B'
#读取图片的地址
img_path = './data/picture'#转换图片格式,强制转换成jpg格式
# img_type = PIL.Image.open(img_path).convert("RGB")
# img_type.save(img_path, 'jpeg')#打开excel文件
wb = openpyxl.load_workbook(excel_path)
#获取sheet页
ws = wb.activefor i, v in enumerate(ws[img_name_column], start=1):#图片路径img_file_path = os.path.join(img_path, f"{v.value}.jpg")#获取图片img = Image(img_file_path)#设置图片的大小img.width, img.height = (110, 110)# 设置表格的宽20和高85ws.column_dimensions[img_column].width = 20ws.row_dimensions[i].height = 85# 图片插入名称对应单元格ws.add_image(img, anchor=img_column + str(i))#保存
wb.save(excel_path) # 保存
#关闭
wb.close()
print(f'保存完成')
示例代码2
以下是一个示例程序,可以实现将指定目录下的所有图片存储到Excel单元格内。注意需要安装openpyxl库和Pillow库。
import os
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
from openpyxl.drawing.image import Image# 设定目录和Excel工作簿名称
directory = "path/to/images/"
workbook_name = "images.xlsx"# 创建新工作簿
wb = Workbook()
sheet = wb.active# 遍历目录下的所有图片文件
for i, filename in enumerate(os.listdir(directory)):if filename.endswith(".jpg") or filename.endswith(".png"):# 打开图片并将其存储到Excel单元格中img = Image(directory + filename)sheet.add_image(img, f'A{i + 1}')# 调整单元格大小以适应图片
for column_cells in sheet.columns:length = max(len(str(cell.value)) for cell in column_cells)sheet.column_dimensions[get_column_letter(column_cells[0].column)].width = length# 保存工作簿
wb.save(workbook_name)
以上代码会将指定目录下所有的.jpg或.png文件存储到Excel单元格中,并将单元格大小调整为适应图片大小。需要注意的是,如果目录下有其他类型的文件,程序会抛出异常并停止运行。可以根据实际情况调整程序逻辑和异常处理方式。
相关文章:
python 批量将图片存入excel单元格内
python 批量将图片存入excel单元格 示例代码1示例代码2 示例代码1 https://blog.csdn.net/wuyoudeyuer/article/details/128185284 # -*- coding: utf-8 -*- # Time : 2022-12-05 # Author : Carl_DJ 实现功能:在excel中,对应的名称后面,…...
Nginx常见的中间件漏洞
目录 1、Nginx文件名逻辑漏洞 2、Nginx解析漏洞 3、Nginx越权读取缓存漏洞 这里需要的漏洞环境可以看:Nginx 配置错误导致的漏洞-CSDN博客 1、Nginx文件名逻辑漏洞 该漏洞利用条件有两个: Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7 php-fpm.conf中的s…...
Linux C语言 27-递归
Linux C语言 27-递归 本节关键字:C语言 递归 相关C库函数:main、printf 什么是递归? 在C语言中,程序调用自身的编程技巧称为递归(recursion)。递归从字面上可以理解为“递去归来”。 使用递归的优缺点 …...
redis运维(二十一)redis 的扩展应用 lua(三)
一 redis 的扩展应用 lua redis加载lua脚本文件 ① 调试lua脚本 redis-cli 通过管道 --pipe 快速导入数据到redis中 ② 预加载方式 1、错误方式 2、正确方式 "案例讲解" ③ 一次性加载 执行命令: redis-cli -a 密码 --eval Lua脚本路径 key …...
如何科学地划分医学图像数据集
在进行医学图像分类任务时,如何科学地划分数据集是一个重要的问题。这个问题的答案取决于你的数据特性和实验目标。一般来说,有两种常见的数据划分方法:按照比例划分和按照病例划分。 按照比例划分 按照比例划分是一种常见的方法,…...
【开源】基于Vue+SpringBoot的食品生产管理系统
项目编号: S 044 ,文末获取源码。 \color{red}{项目编号:S044,文末获取源码。} 项目编号:S044,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 加工厂管理模块2.2 客户管理模块2.3…...
如何减少40%的Docker构建时间
随着Docker的普及,许多公司的产品会将组件构建为Docker镜像。但随着时间的推移,一些镜像变得越来越大,对应的CI构建也变得越来越慢。 如果能在喝完一杯咖啡的时间(不超过5分钟)内完成构建,将是一个理想状态…...
Scrapy爬虫异步框架之持久化存储(一篇文章齐全)
1、Scrapy框架初识(点击前往查阅) 2、Scrapy框架持久化存储 3、Scrapy框架内置管道(点击前往查阅) 4、Scrapy框架中间件(点击前往查阅) Scrapy 是一个开源的、基于Python的爬虫框架,它提供了…...
JVM——几种常见的对象引用
目录 1. 软引用软引用的使用场景-缓存 2.弱引用3.虚引用和终结器引用 可达性算法中描述的对象引用,一般指的是强引用,即是GCRoot对象对普通对象有引用关系,只要这层关系存在, 普通对象就不会被回收。除了强引用之外,Ja…...
C++期末考试选择题题库100道C++期末判断题的易错知识点复习
今天备考C,看到了一些好的复习资料,整合一起给大家分享一下 选择题 对于常数据成员,下面描述正确的是 【 B 】 A. 常数据成员必须被初始化,并且不能被修改 B. 常数据成员可以不初始化,并且不能被修改 C. 常数据成…...
使用qemu调试arm内核
参考书籍《奔跑吧Linux内核》–笨叔 下载Linux-5.0源码 https://benshushu.coding.net/public/runninglinuxkernel_5.0/runninglinuxkernel_5.0/git/files或者直接git源码 git clone https://e.coding.net/benshushu/runninglinuxkernel_5.0/runninglinuxkernel_5.0.git安装必…...
Pytorch深度学习实战2-1:详细推导Xavier参数初始化(附Python实现)
目录 1 参数初始化2 Xavier参数初始化原理2.1 前向传播阶段2.2 反向传播阶段2.3 可视化思考 3 Python实现 1 参数初始化 参数初始化在深度学习中起着重要的作用。在神经网络中,参数初始化是指为模型中的权重和偏置项设置初始值的过程。合适的参数初始化可以帮助模型…...
Java的threadd常用方法
常用API 给当前线程命名 主线程 package com.itheima.d2;public class ThreadTest1 {public static void main(String[] args) {Thread t1 new MyThread("子线程1");//t1.setName("子线程1");t1.start();System.out.println(t1.getName());//获得子线程…...
一键修复0xc000007b错误代码,科普关于0xc000007b错误的原因
最近很多用户都有遇到过0xc000007b错误的问题,出现这样的问题想必大家都会手足无措吧,其实解决这样的问题也有很简单的解决方法,这篇文章就来教大家如何一键修复0xc000007b,同时给大家科普一下关于0xc000007b错误的原因࿰…...
使用Selenium、Python和图鉴打码平台实现B站登录
selenium实战之模拟登录b站 基础知识铺垫: 利用selenium进行截图: driver.save_screenshot() 注意图片文件名要用png结尾. 关于移动: ActionChains(bro).move_to_element_with_offset()# 对于某个图像ActionChains(bro).move_by_offset(…...
嵌入式设备视频编码比较:H.264、H.265、MPEG-2和MJPG
在嵌入式设备领域,视频编码是一项关键技术,它能够将高清视频压缩为更小的数据量,以实现高效的存储和传输。本文将对四种常见的视频编码标准进行详细比较,包括H.264(AVC)、H.265(HEVC)…...
创意二维码案例:意大利艺术家的最新二维码艺术展!
意大利艺术家——米开朗基罗皮斯特莱托(Michelangelo Pistoletto)的个人艺术展“二维码‘说’”(QR CODE POSSESSION)正在北京798艺术区的常青艺术画廊展出,这是一次别出心裁的创意艺术展! 主要体现在3个方…...
XML映射文件
<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace"org.mybatis.example.BlogMapper&q…...
AlDente Pro v1.22.2(mac电池最大充电限制工具)
AlDente Pro是一款适用于Mac操作系统的小工具,可以帮助您限制电池充电量以延长电池寿命。通常情况下,电池在充满的状态下会继续接受电源充电,这可能会导致电池寿命缩短。使用AlDente Pro,您可以设置电池只充到特定的充电水平&…...
原生小程序图表
原生小程序使用图表 话不多说直接进入正题 官方文档: https://www.ucharts.cn/v2/#/ 下载文件 首先去gitee上把文件下载到自己的项目中 https://gitee.com/uCharts/uCharts 找到微信小程序和里面的组件 把里面src下的文件全部下载下来放入自己项目中 项目文件 新建文件…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...
