找回密码
 会员注册
查看: 22|回复: 0

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

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
72012
发表于 2024-9-8 11:11:42 | 显示全部楼层 |阅读模式
Excel是主要用于处理表格和数据的工具,我们也能在其中插入、编辑或管理图片,为工作表增添视觉效果,提升报告的吸引力。本文将详细介绍如何使用Python操作Excel中的图片,包含以下4个基础示例:文章目录Python在Excel中插入图片Python替换Excel中的图片Python提取Excel中的图片Python删除Excel中的图片首先需要安装第三方Python库-Spire.XLSforPython。可以下载产品后再从本地路径安装使用,也可以直接使用以下pip命令安装:pipinstallSpire.XLSPython在Excel中插入图片我们可以使用Spire.XLSforPython库在指定单元格中插入图片,并设置图片大小等。操作如下:创建工作簿Workbook对象并获取指定工作表;使用Worksheet.Pictures.Add(inttopRow,intleftColumn,Imageimage)方法在工作表指定单元格中插入图片;通过ExcelPicture类下的各属性设置图片的宽度、高度、与单元格边框的距离等;使用SaveToFile()方法保存Excel文件。示例代码:fromspire.xlsimport*fromspire.xls.commonimport*#创建Workbook对象workbook=Workbook()#获取第一张工作表sheet=workbook.Worksheets[0]#在指定单元格中插入图片(此处为第一行第二列,即B1单元格)picture=sheet.Pictures.Add(1,2,"示例.png")#设置图片宽高度picture.Width=120picture.Height=120#调整图片所在位置的列宽和行高sheet.Columns[1].ColumnWidth=20sheet.Rows[0].RowHeight=110#设置单元格边框与图片之间的距离picture.LeftColumnOffset=90picture.TopRowOffset=20#保存文件workbook.SaveToFile("插入图片.xlsx",ExcelVersion.Version2016)workbook.Dispose()123456789101112131415161718192021222324252627Python替换Excel中的图片要用新图片替换Excel中的原有图片,可以参考如下步骤:加载Excel文件,并获取指定工作表;通过Worksheet.Pictures[]属性获取指定图片;加载新图,并通过ExcelPicture.Picture属性将指定图片替换为新图;使用SaveToFile()方法保存Excel文件。示例代码:fromspire.xlsimport*fromspire.xls.commonimport*#加载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()12345678910111213141516171819Python提取Excel中的图片Spire.XLSforPython库也可以读取Excel文档中的图片,并保存到指定的文件路径。步骤如下:加载Excel文件,并获取指定工作表;遍历工作表中的所有图片;调用ExcelPicture.Picture.Save()方法提取Excel中的图片。示例代码:fromspire.xlsimport*fromspire.xls.commonimport*#加载Excel文档workbook=Workbook()workbook.LoadFromFile("图标.xlsx")#获取第一张工作表sheet=workbook.Worksheets[0]#获取工作表中所有图片foriinrange(sheet.Pictures.Count-1,-1,-1):pic=sheet.Pictures[i]#保存图片pic.Picture.Save("提取图片\\图片-{0:d}.png".format(i),ImageFormat.get_Png())workbook.Dispose()123456789101112131415161718Python删除Excel中的图片Worksheet.Pictures[imgIndex].Remove()方法允许我们通过索引删除指定图片。要删除Excel中所有图片,可以遍历每张图片然后删除。示例代码如下:fromspire.xlsimport*fromspire.xls.commonimport*#加载Excel文档workbook=Workbook()workbook.LoadFromFile("图标.xlsx")#获取第一张工作表sheet=workbook.Worksheets[0]#删除工作表中所有图片foriinrange(sheet.Pictures.Count-1,-1,-1):sheet.Pictures[i].Remove()#删除指定图片#sheet.Pictures[imgIndex].Remove()#保存文档workbook.SaveToFile("删除图片.xlsx",ExcelVersion.Version2013)workbook.Dispose()1234567891011121314151617181920上述示例能帮助掌握使用Python在Excel中插入、替换、删除图片的技巧,并进行一些基本的图片设置。如有问题,可前往论坛交流。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 22:40 , Processed in 0.463475 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表