【办公类-57-01】美工室材料报销EXCEL表批量插入截图(图片)

背景需求:

我们班分到美工室,需要准备大量材料,根据原始的报销单EXCLE,里面有商品名称、图片、链接、单位、数量等信息

今天我和搭档一起填写新表,发现手机截图的图片插入EXCEL后非常大,

需要手动调整图片大小,每一项都要这么插入调整,非常费劲。

因此,我将每张截图单独放在图片文件夹里。

只是先把EXCEL的文字做好

代码份两部分:

1、把EXCEL里面的行高调整到300

2、把原图插入指定的位置(与单元格左上角的坐标相同)

代码展示

'''
美工室材料报销EXCEL插入图片
星火讯飞、阿夏
20241021'''
import os,time
from openpyxl import Workbook, load_workbook
from openpyxl.drawing.image import Image
from PIL import Image as PILImage# 定义文件夹路径和图片大小(以像素为单位)
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\报销清单'
folder_path = path + r'\01图片'
file_path = path + r'\20241020美工室打造 - 副本.xlsx'# 加载现有的Excel工作簿
workbook = load_workbook(filename=file_path)
sheet = workbook.active# 设置新的行高
new_row_height = 300  # 可以根据需要调整行高# 遍历从第4行开始的所有行并设置行高
for row in range(3, sheet.max_row + 1):sheet.row_dimensions[row].height = new_row_height# 保存修改后的工作簿
workbook.save(file_path)# 图片大小参数(以厘米为单位)
image_width_cm = 5
image_height_cm = 10
dpi = 96  # 对于打印,可以使用较高的DPI
image_width_px = int(image_width_cm * dpi / 2.54)
image_height_px = int(image_height_cm * dpi / 2.54)# 获取文件夹中的所有图片文件
image_files = [f for f in os.listdir(folder_path) if f.endswith(('png', 'jpg', 'jpeg', 'bmp', 'gif'))]# 创建一个新的Excel工作簿或加载现有的工作簿
try:workbook = load_workbook(file_path)
except FileNotFoundError:workbook = Workbook()
sheet = workbook.active# 插入图片到指定的单元格
for i, image_file in enumerate(image_files):img_path = os.path.join(folder_path, image_file)img = PILImage.open(img_path)img = img.resize((image_width_px, image_height_px), PILImage.LANCZOS)  # 使用高质量的缩放算法调整图片大小img = Image(img_path)cell = sheet.cell(row=i + 3, column=2)  # B列从第3行开始sheet.add_image(img, cell.coordinate)# 保存工作簿
workbook.save(path + r'\20241020美工室打造 - 副本2.xlsx')time.sleep(2)

终端运行

必须插入原图282KB,等会儿缩小的只是长宽,如果想把图片放大,还能显示清晰的内容。

测试多次也没有找到可以批量缩小图片长宽,保留质量的代码,因此只能手动修改

第1步,全选文字、图片

第2步,图片格式等比例,缩小到14%

每张插入的图片都在B单元格范围内

第3步,如果一个格子有多张图片,把第二张图片编号放到最后,

把列宽拉大

最终效果

后续再用星火讯飞寻找用Python就能等比例缩小图片并且不损害质量的代码

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

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

相关文章

4 -《本地部署开源大模型》在Ubuntu 22.04系统下部署运行ChatGLM3-6B模型

在Ubuntu 22.04系统下部署运行ChatGLM3-6B模型 大模型部署整体来看并不复杂,且官方一般都会提供标准的模型部署流程,但很多人在部署过程中会遇到各种各样的问题,很难成功部署,主要是因为这个过程会涉及非常多依赖库的安装和更新及…

【AI】人工智能的应用与前景

目录 人工智能的应用与前景1. 人工智能的当前应用1.1 医疗领域1.1.1 医疗影像中的AI应用1.1.2 药物研发中的AI潜力 1.2 企业与商业领域1.2.1 数据驱动的智能决策1.2.2 自动化业务流程 1.3 智能生活领域1.3.1 自动驾驶技术的崛起1.3.2 智能家居中的AI应用 2. 人工智能的未来前景…

Golang | Leetcode Golang题解之第485题最大连续1的个数

题目: 题解: func findMaxConsecutiveOnes(nums []int) (maxCnt int) {cnt : 0for _, v : range nums {if v 1 {cnt} else {maxCnt max(maxCnt, cnt)cnt 0}}maxCnt max(maxCnt, cnt)return }func max(a, b int) int {if a > b {return a}return …

区块链技术在网络安全中的应用研究

摘要: 随着网络技术的快速发展,网络安全问题日益凸显。区块链技术以其去中心化、不可篡改、可追溯等特性,为网络安全提供了新的解决方案。本文深入探讨了区块链技术在网络安全多个领域的应用,包括数据加密与存储、身份认证、网络攻…

Golang | Leetcode Golang题解之第494题目标和

题目&#xff1a; 题解&#xff1a; func findTargetSumWays(nums []int, target int) int {sum : 0for _, v : range nums {sum v}diff : sum - targetif diff < 0 || diff%2 1 {return 0}neg : diff / 2dp : make([]int, neg1)dp[0] 1for _, num : range nums {for j …

HICP--2

在area 0的路由器只生成 area 0 的数据库&#xff0c;只在area 1 的一样。但是既在又在的生成两个 area的 LSDB 一、区域间三类LSA 在OSPF&#xff08;Open Shortest Path First&#xff09;协议中&#xff0c;区域间三类LSA&#xff08;Link-State Advertisement&#xff09…

基于Java+jsp的CRM客户关系管理系统的实现

系统的详细设计和实现 根据上文的功能分析和数据库的分析&#xff0c;在系统的实现阶段上采用当今开源的SSH&#xff08;StrutsHibernateSpring&#xff09;整合框架实现。其目的是降低个模块间的耦合度&#xff0c;使各个模块之间的功能相互独立、模块内部结构清晰。 系统架…

听泉鉴宝在三个月前已布局商标注册!

近日“听泉鉴宝”以幽默的风格和节目效果迅速涨粉至2500多万&#xff0c;连线出现“馆藏文物”和“盗墓现场”等内容&#xff0c;听泉鉴宝早在几个月前已布局商标注册。 据普推知产商标老杨在商标局网站检索发现&#xff0c;“听泉鉴宝”的主人丁某所持股的江苏灵匠申请了三十…

视图库对接系列(GA-T 1400)十六-二、视图库对接系列(本级)查询订阅

说明 之前我们在本级中少写了一个查询订阅的接口,这里的话 我们给本级中补充一个功能,实现查询订阅功能。文档 这面我们是向下级发送查询订阅的功能,我们目前测试的话需要手动触发下这个功能, 我们就写一个接口就叫/custom/VIID/Subscribes ,和1400接口的区别是增加了一个…

ffmpeg视频滤镜:双边滤波-bilateral

滤镜简述 bilateral 官网链接 > FFmpeg Filters Documentation 双边滤波是一种图片去噪的方法&#xff0c;它会综合考虑像素的空间和像素值来优化图片&#xff0c;可以看一下如下效果&#xff1a; 左边是 原图&#xff0c;右边是优化后的&#xff0c;相当于磨皮了。 要…

打造高性能在线电子表格:WebGL 渲染引擎 Kola2d 自研之路

导读&#xff1a;本文主要阐述了 Docs 在线表格为打造极致渲染性能所做的关键优化和过程思考&#xff0c;作为首个在在线电子表格领域自研基于WebGL渲染引擎的「吃螃蟹」者&#xff0c;整个过程面临诸多不确定性与挑战&#xff0c;Kola2d 的整体设计在此期间也经历了几轮推倒重…

linux之网络子系统- 地址解析协议arp 源码分析和邻居通用框架

一、arp 的作用 ARP&#xff08;Address Resolution Protocol&#xff0c;地址解析协议&#xff09;是将IP地址解析为以太网MAC地址&#xff08;物理地址&#xff09;的协议。在局域网中&#xff0c;当主机或其他网络设备有数据要发送给另一个主机或设备时&#xff0c;它必须知…

酒店预订订房小程序源码系统 多酒店入驻+打造类似美团的酒店模式 带完整的安装代码包以及搭建部署教程

系统概述 随着移动互联网的普及&#xff0c;小程序因其轻量级、无需下载安装、即用即走的特点&#xff0c;迅速成为各行业的标配。对于酒店预订行业而言&#xff0c;小程序不仅能够有效提升用户体验&#xff0c;还能降低运营成本&#xff0c;提高转化率。本源码系统正是基于这…

企业数字化转型的理论指南:构建未来企业的关键策略与实践路径

数字化转型已经成为当今企业发展和市场竞争的核心驱动力&#xff0c;而在这一过程中&#xff0c;企业架构&#xff08;EA&#xff09;发挥着至关重要的作用。这本白皮书《世界级企业架构&#xff1a;建立和发展EA能力的领导者方法》提供了深入的理论指导&#xff0c;为企业如何…

ToolBox没有进行配置 Failed to initialize Toolboxlibrary

solidworks打开右侧提示 ToolBox没有进行配置跟Failed to initialize Toolboxlibrary 解决方法如下 使用xxclean的扩展功能 SW右侧栏是英文 toolbox配置无效 这个按钮

开源大模型项目,助你效率提高 10 倍

随着 AI 的普及&#xff0c;大家使用 AI 工具的时间越来越长了&#xff0c;尤其因为有了像 GPT-4o 和 Claude 这样强大的 LLM。 今天&#xff0c;我将介绍 21 个开源 LLM 项目&#xff0c;它们可以帮助你构建令人兴奋的内容&#xff0c;并将人工智能集成到你的项目中。 Vanna…

【华为HCIP实战课程十七】OSPF的4类及5类LSA详解,网络工程师

一、5类LSA详解 由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了STUB区域和NSSA区域)。 我们在R6设备配置引入直连路由,R6的lo10 属于区域2 interface LoopBack10 ip address 6.6.6.6 255.255.255.255 ospf enable 1 area 0.0.0.2 [R6-ospf-1]import-route dire…

容灾与云计算概念

​​​​​​基础知识容灾备份——备份技术系统架构与备份网络方案-CSDN博客 SAN&#xff0c;是storage area network的简称&#xff0c;翻译过来就是存储区域网络。 顾名思义&#xff0c;SAN首先是一个网络&#xff0c;其次它是关于存储的&#xff0c;区域则是指服务器和存储资…

膜结构首次应用于国内游轮项目—轻空间

轻空间&#xff08;江苏&#xff09;膜科技有限公司近日成功中标一项国内游轮项目&#xff0c;这一成就标志着膜结构在游轮船舶行业的首次应用&#xff0c;开启了新的市场探索之旅。 作为行业先锋&#xff0c;轻空间始终致力于将创新技术融入多元化场景。本次游轮项目的成功中标…

基于Bert+Attention+LSTM智能校园知识图谱问答推荐系统

获取更多完整项目代码数据集&#xff0c;点此加入免费社区群 &#xff1a; 首页-置顶必看 1. 项目简介 本项目旨在实现基于ALBERT模型的命名实体识别&#xff08;NER&#xff09;任务。ALBERT&#xff08;A Lite BERT&#xff09;是谷歌提出的轻量级BERT模型&#xff0c;具有…