当前位置: 首页 > news >正文

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中插入、替换、删除图片的技巧,并进行一些基本的图片设置。如有问题,可前往论坛交流。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【初阶数据结构】深入解析队列:探索底层逻辑
  • 3Python的Pandas:数据选取
  • React 19 竞态问题解决
  • 从入门到精通:网络基础详解
  • 在Pycharm中把jupyter notebook转换成md格式
  • java入门-java方法实现+案例
  • 软件架构之计算机网络
  • 【鸿蒙学习笔记】使用动画
  • Vue3框架搭建:vue+vite+pina+typescript
  • C++ Qt 自制开源科学计算器
  • 2023.2版IDEA复制配置修改端口增加一个当前运行服务的操作流程
  • cv::Mat 操作多维矩阵的思路
  • 快速响应需求:App路由动态化探索
  • 2024 年第十四届亚太数学建模竞赛(中文赛项)浅析
  • 【深度学习实战(44)】Anchor based and Anchor free(无锚VS有锚)
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • express.js的介绍及使用
  • JSONP原理
  • php ci框架整合银盛支付
  • Python 反序列化安全问题(二)
  • ReactNative开发常用的三方模块
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • spring security oauth2 password授权模式
  • V4L2视频输入框架概述
  • 创建一种深思熟虑的文化
  • 从零搭建Koa2 Server
  • 订阅Forge Viewer所有的事件
  • 坑!为什么View.startAnimation不起作用?
  • 如何进阶一名有竞争力的程序员?
  • 入手阿里云新服务器的部署NODE
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 追踪解析 FutureTask 源码
  • ionic入门之数据绑定显示-1
  • puppet连载22:define用法
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #if等命令的学习
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (zhuan) 一些RL的文献(及笔记)
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (过滤器)Filter和(监听器)listener
  • (回溯) LeetCode 46. 全排列
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (四)软件性能测试
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (学习日记)2024.01.09
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • ./configure、make、make install 命令