首页 > 编程语言 >Python 在Excel中插入、替换、提取、或删除图片

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

时间:2024-10-21 16:47:16浏览次数:6  
标签:sheet Python Pictures Excel 插入 workbook 图片

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中的图片

要用新图片替换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中的图片

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中的图片

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

 

标签:sheet,Python,Pictures,Excel,插入,workbook,图片
From: https://www.cnblogs.com/Yesi/p/18489768

相关文章

  • Python之Matplotlib的基本使用教程
    1.安装pipinstallmatplotlib-ihttps://pypi.tuna.tsinghua.edu.cn/simple#在终端输入2.基本配置frommatplotlibimportpyplotasplt#让图片可以显示中文plt.rcParams['font.sans-serif']='SimHei'#让图片可以显示负号plt.rcParams['axes.unicode_minus'......
  • Excel-Ctrl+Enter键的妙用
    一、Ctrl+Enter键的妙用 1.1 Ctrl+Enter键在多连续区域输入相同内容比如我要在一块区域内输入相同的数据,我首先选中这块区域,然后在第一个表格内输入数据-输入之后-(不要按回车键)按Ctrl+Enter键,即可全部表格输入同一数据  1.2 Ctrl+Enter键在非连续区域输入相同内容 先......
  • python的类型注解
    类型注解"""类型注解: python的类型注解(TupgHints)是在python3.5版本中引入的一项语言特性,用于为变量、参数和函数返回值 等添加静态类型的信息。   类型注解使用“:”和箭头符号->来表示类型信息 具体来说,可以在函数定义中为参数和返回值添加类......
  • mongodb 查询条件,查询逻辑对照表,逻辑运算符,正则表达式匹配查询,排序,分页/巧分页,更新操
    mongodb查询条件,查询逻辑对照表,逻辑运算符,正则表达式匹配查询,排序,分页/巧分页,更新操作符,更新单个/多个文档,删除文档,批量插入,$type操作符,内嵌文档和数组查找修改1.条件查询SQLMQLa=1{a:1}a<>1{a:{$ne:1}}a>1{a:{$gt:1}}a>=1{a:{$gte:1}}a<1{a:{$lt......
  • python开发“动物园里有什么”游戏
    ......
  • python 实现RGB和HSV相互转换算法
    RGB和HSV相互转换算法介绍RGB和HSV之间的相互转换算法可以通过一系列的数学计算来实现。以下是对这两种色彩空间之间转换的基本算法的概述:RGB到HSV的转换1、归一化RGB值:首先,将RGB值从范围[0,255]归一化到[0,1]。这可以通过将每个颜色分量除以255来实现。2、计算明度V......
  • 如果python的类变量和实例变量名字一样会如何?
    python中类变量是属于类的,不属于具体的对象,所有对象共享一个类变量。类变量可以通过类名.变量名访问,也可以通过实例化后的对象.变量名访问。那么,如果我给对象的变量起的名字和类变量同名会如何?我们写代码测试一下:classFoo:name="hello"defset_instance_name(self,......
  • 如何使用Python调用API数据
    为什么使用Python调用API数据?简洁的语法:Python的简洁性使得编写API调用代码变得直观易懂。强大的库支持:Python拥有如requests这样的库,极大地简化了HTTP请求的发送和响应的处理。数据处理能力:Python的数据处理库,如Pandas,使得数据的分析和处理变得简单。社区支持:Python社区庞大,......
  • 【25届计算机毕设选题推荐】基于python的重庆旅游景点数据分析系统的设计与实现 【附
    ✍✍计算机毕设编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、小程序、大数据实战项目集⚡⚡文末获取......
  • 用人话讲计算机:小白版Python篇!(二)基本数据类型1和进制数
    一、数据类型上一节我们曾讲到a=1,b=2,c=“b”之类的东西,我们知道a,b,c叫做变量,而现在所谓的数据类型,其实就是1,2,“b”他们分别属于什么。而我们将数据们分为以下几个类型:1、整数整数,就是我们日常生活中的整数,如1,2,3,-1,-2,0,10,90之类。定义方式:a=12、浮点数浮点数,就是小数,如1......