Python 插入、替换、提取、或删除Excel中的图片

Excel是主要用于处理表格和数据的工具,我们也能在其中插入、编辑或管理图片,为工作表增添视觉效果,提升报告的吸引力。本文将详细介绍如何使用Python操作Excel中的图片,包含以下4个基础示例:

文章目录

      • Python 在Excel中插入图片
      • Python 替换Excel中的图片
      • Python 提取Excel中的图片
      • Python 删除Excel中的图片

首先需要安装第三方Python库- Spire.XLS for Python。可以下载产品后再从本地路径安装使用,也可以直接使用以下pip命令安装:

pip install Spire.XLS

Python 在Excel中插入图片

我们可以使用Spire.XLS for Python库在指定单元格中插入图片,并设置图片大小等。操作如下:

  1. 创建工作簿Workbook对象并获取指定工作表;
  2. 使用Worksheet.Pictures.Add(int topRow, int leftColumn, Image image)方法在工作表指定单元格中插入图片;
  3. 通过ExcelPicture类下的各属性设置图片的宽度、高度、与单元格边框的距离等;
  4. 使用SaveToFile()方法保存Excel文件。

示例代码:

from spire.xls import *
from spire.xls.common import *
     
# 创建Workbook对象
workbook = Workbook()

# 获取第一张工作表
sheet = workbook.Worksheets[0]

# 在指定单元格中插入图片(此处为第一行第二列,即B1单元格)
picture = sheet.Pictures.Add(1, 2, "示例.png")

# 设置图片宽高度
picture.Width = 120
picture.Height = 120

# 调整图片所在位置的列宽和行高
sheet.Columns[1].ColumnWidth = 20
sheet.Rows[0].RowHeight = 110

# 设置单元格边框与图片之间的距离
picture.LeftColumnOffset = 90
picture.TopRowOffset = 20

# 保存文件
workbook.SaveToFile("插入图片.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Python Excel图片

Python 替换Excel中的图片

要用新图片替换Excel中的原有图片,可以参考如下步骤:

  1. 加载Excel文件,并获取指定工作表;
  2. 通过Worksheet.Pictures[]属性获取指定图片;
  3. 加载新图,并通过ExcelPicture.Picture属性将指定图片替换为新图;
  4. 使用SaveToFile()方法保存Excel文件。

示例代码:

from spire.xls import *
from spire.xls.common import *

# 加载Excel文档
workbook = Workbook()
workbook.LoadFromFile ("插入图片.xlsx")

# 获取第一张工作表
sheet = workbook.Worksheets[0]

# 获取工作表中第一张图片
excelPicture = sheet.Pictures[0]
            
# 替换图片
excelPicture.Picture = Image.FromFile("pic.jpg")

# 保存文档
workbook.SaveToFile("替换图片.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Python替换Excel图片

Python 提取Excel中的图片

Spire.XLS for Python库也可以读取Excel文档中的图片,并保存到指定的文件路径。步骤如下:

  1. 加载Excel文件,并获取指定工作表;
  2. 遍历工作表中的所有图片;
  3. 调用ExcelPicture.Picture.Save()方法提取Excel中的图片。

示例代码:

from spire.xls import *
from spire.xls.common import *

# 加载Excel文档
workbook = Workbook()
workbook.LoadFromFile("图标.xlsx")

# 获取第一张工作表
sheet = workbook.Worksheets[0]

# 获取工作表中所有图片
for i in range(sheet.Pictures.Count - 1, -1, -1):
    pic = sheet.Pictures[i]

    # 保存图片
    pic.Picture.Save("提取图片\\图片-{0:d}.png".format(i), ImageFormat.get_Png())

workbook.Dispose()

Python读取Excel图片

Python 删除Excel中的图片

Worksheet.Pictures[imgIndex].Remove() 方法允许我们通过索引删除指定图片。要删除Excel中所有图片,可以遍历每张图片然后删除。示例代码如下:

from spire.xls import *
from spire.xls.common import *

# 加载Excel文档
workbook = Workbook()
workbook.LoadFromFile("图标.xlsx")

# 获取第一张工作表
sheet = workbook.Worksheets[0]

# 删除工作表中所有图片
for i in range(sheet.Pictures.Count - 1, -1, -1):
    sheet.Pictures[i].Remove()

# 删除指定图片
# sheet.Pictures[imgIndex].Remove()

# 保存文档
workbook.SaveToFile("删除图片.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

Python删除Excel图片

上述示例能帮助掌握使用Python在Excel中插入、替换、删除图片的技巧,并进行一些基本的图片设置。如有问题,可前往论坛交流。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Autogen基本使用介绍

文章目录 一,Build1,Skill2,Models3,agents4,workflow 二,Playground 本文唯一目的就是介绍一下Autogen Studio的基本的使用。 打开这个网页以后,看到它有2个菜单,分别是: BuildPla…

07-7.3.2 平衡二叉树(AVL)

👋 Hi, I’m Beast Cheng 👀 I’m interested in photography, hiking, landscape… 🌱 I’m currently learning python, javascript, kotlin… 📫 How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以…

使用 Qt 和 ECharts 进行数据可视化

文章目录 示例图表预览折线图散点图柱状图使用 Qt 和 ECharts 进行数据可视化一、准备工作1. 安装 Qt2. 准备 ECharts二、在 Qt 中使用 ECharts1. 创建 Qt 项目2. 配置项目文件3. 在 UI 中添加 WebEngineView4. 加载 ECharts三、创建折线图、散点图和柱状图1. 折线图2. 散点图3…

工作流之战: Flowable vs. Camunda vs. Activiti

欢迎来到我的博客,代码的世界里,每一行都是一个故事 🎏:你只管努力,剩下的交给时间 🏠 :小破站 工作流之战: Flowable vs. Camunda vs. Activiti 前言功能特性对比架构设计分析性能比较使用场景…

zookeeper加入开机启动项

Windows的任务计划程序(Task Scheduler)是一个强大的工具,允许你安排程序在特定时间自动运行,包括开机时。 打开任务计划程序: 按下Win R键,打开“运行”对话框。输入taskschd.msc并回车,打开…

js ES6 part1

听了介绍感觉就是把js在oop的使用 作用域 作用域(scope)规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问, 作用域分为: 局部作用域、 全局作用域 1. 函数作用域: 在函数内部声明的…

Docker定时清理

一、循环调度执行 1、检查cron状态 systemctl status crond 2、创建要执行的shell脚本 vim /home/cleanup_docker.sh #! /bin/bash # 清理临时文件 echo $(date "%H:%M:%S") "执行docker清理命令..." docker system prune -af-a 清理包括未使用的镜像 …

Vue3动态路由(响应式带参数的路由)变更页面不刷新的问题

背景 先说说问题,问题来源是因为我的开源项目Maple-Boot项目的网站前端,因为项目主打的内容发布展示,所以其中的内容列表页会根据不同的菜单进行渲染不同的路由。 这里路由path使用的是/blog/:menu?,通过menu的参数来渲染对应的…

很多人对AI Agent的理解太片面

现在 AI 智能体(AI Agent)的概念很火,似乎 Agent 是用 AI 解决问题的银弹,有了 Agent 就可以解决很多问题。但也有很多人有不同意见,认为 Agent 不过是噱头,并没有看到靠谱的应用场景。 一个被提及很多的是…

openlayers更改点坐标

我现在的需求是无人机点位根据ws传输的经纬度改变位置,在网上查了很多资料,终于是做出来了,如果有问题请指出。 效果图,无人机可以来回移动 这里是核心代码 // 添加飞机点位图层let vectorLayerpointfunction DronepointLayer()…

Windows远程桌面的奇技淫巧

前言 Windows远程桌面简介 远程桌面协议(RDP)是一个多通道(multi-channel)的协议,让使用者连上提供微软终端机服务的计算机(称为服务端或远程计算机) 远程桌面的前置条件 在获取权限后,针对3389进行展开,先查询3389端口是否开启 netstat…

PHP工单预约表单系统小程序源码

🔧【高效办公新利器】工单预约表单系统大揭秘 💼【一键提交,工单管理新高度】 你还在为繁琐的工单提交流程头疼吗?工单预约表单系统,让你的工单管理步入高效时代!只需简单几步,填写必要信息&a…

记一次线上流量突增问题排查

一.问题 接流量告警出现获取 xx 信息接口调用次数同比往年大促活动猛涨.扩大至 10 倍之多.心里顿时咯噔一下.最近各种严打,顶风作案.某不是摸到电门了.一下子要把自己带走.从此走向求职之路.一时间脑子哇哇的思绪万千. 202x.5.20 大促开门红的调用.这个是往年活动的时候的调用…

app: 和 android:的区别

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

Dynadot 2024年第一季度回顾

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

顶刊文献阅读及代码复现

前提:每个无人机都有 (i)自己的机载计算机,用于执行控制其自身动作所需的计算 (ii)自己的传感器系统,用于测量相对位置和速度, (iii)自己的通信设备,用于与相邻代理进行数据交换。 模型:短期的排斥力、中间范围的速度一致性和长距离的吸引力

昇思MindSpore学习入门-CELL与参数一

Cell作为神经网络构造的基础单元,与神经网络层(Layer)的概念相对应,对Tensor计算操作的抽象封装,能够更准确清晰地对神经网络结构进行表示。除了基础的Tensor计算流程定义外,神经网络层还包含了参数管理、状态管理等功能。而参数(…

【LLM大模型】如何在LlamaIndex中使用RAG?

如何在LlamaIndex中使用RAG 什么是 Llama-Index LlamaIndex 是一个数据框架,用于帮助基于 LLM 的应用程序摄取、构建结构和访问私有或特定领域的数据。 如何使用 Llama-Index ? 基本用法是一个五步流程,将我们从原始、非结构化数据导向基于该数据生成…

1Panel安装教程:使用Linux服务器安装1Panel面板全流程

使用阿里云服务器安装1Panel面板全流程,云服务器操作系统为CentOS 7.9,安装1Panel非常简单,先执行1Panel安装命令,然后在云服务器安全组中开通1Panel默认端口号、安全入口、用户名和密码等操作,阿里云百科整理详细安装…

国产热玛吉射频仪

最近看到国产热玛吉的射频模块。分享一下图片,看起来做工也是普普通通,对比进口的热玛吉射频板,技术水平相差甚远啊