通过 Python 在 Excel 中添加或删除图片

[复制链接]
发表于 2025-12-19 08:53:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在数据处置惩罚与办公主动化场景中,Excel 文件常需嵌入图片以加强可视化表达。然而,手动添加或删除图片不光服从低下,还轻易堕落。怎样用 Python 实现 Excel 中图片的主动化管理?答案是:利用 Free Spire.XLS for Python 免费库。
本文将体系先容怎样通过 Python 代码,在 Excel 文件中添加图片和删除图片,并提供完备示例与操纵流程。内容基于真实可用的技能方案,实用于数据分析师、主动化工程师及办公主动化爱好者。
为什么选择 Python + Free Spire.XLS?

在浩繁 Python 库中,如 pandas、openpyxl 等,固然能处置惩罚 Excel 表格结构,但对图片操纵支持有限。比方:

  • openpyxl 只能读写单元格内容,无法直接操纵图片。
  • xlwings 虽可调用 Excel 界面,但依赖运行环境,不实用于脚本主动化。
相比之下,Free Spire.XLS for Python 是一款专为处置惩罚 Excel 文件操持的跨平台库,支持图片的添加、删除、裁剪、格式调解等完备功能,且无需安装 Excel,无需依赖 COM 接口,完全在 Python 环境中运行。
✅ 上风总结如下:
对比维度Free Spire.XLS for Pythonopenpyxl / xlwings图片添加支持✅ 支持❌ 仅支持单元格内容图片删除支持✅ 支持❌ 无直接接口无需 Excel 运行✅ 支持❌ 需Excel环境脚本主动化✅ 高效⚠️ 依赖外部环境
📌 阐明:Free Spire.XLS for Python 支持 .xlsx 和 .xls 格式,但有篇幅限定,实用于小型文档。
Python 添加图片到 Excel 中的完备流程

步调1:安装库
  1. pip install spire.xls.free
复制代码
步调2:代码示例 — 将图片添加到指定单元格位置

该场景实用于图片需与单元格内容对齐的环境(如报表中图片对应某行数据),核心是通过 Worksheet.Pictures.Add() 指定图片路径和目的单元格。
  1. from spire.xls import *
  2. from spire.xls.common import *
  3.      
  4. # 创建工作簿对象
  5. workbook = Workbook()
  6. # 获取第一个工作表
  7. sheet = workbook.Worksheets[0]
  8. # 添加图片到工作表指定单元格
  9. imgPath = "logo.png"
  10. picture = sheet.Pictures.Add(1, 3, imgPath)
  11. # 调整单元格大小以容纳图片
  12. sheet.Columns[2].ColumnWidth = 25
  13. sheet.Rows[0].RowHeight = 135
  14. # 保存文件
  15. workbook.SaveToFile("InsertImage.xlsx", ExcelVersion.Version2013)
  16. workbook.Dispose()
复制代码
扩展技能:自界说图片位置和尺寸添加

若需正确控制图片的坐标和宽高,可通过 ExcelPicture 提供的 LeftColumnOffset / TopRowOffset / Width / Height 属性设置:
  1. from spire.xls import *
  2. from spire.xls.common import *
  3. # 创建工作簿对象
  4. workbook = Workbook()
  5. # 获取第一个工作表
  6. sheet = workbook.Worksheets[0]
  7. # 添加图片到工作表指定单元格
  8. imgPath = "logo.png"
  9. picture = sheet.Pictures.Add(1, 3, imgPath)
  10. # 自定义图片位置
  11. picture.LeftColumnOffset = 90 # 左侧偏移90
  12. picture.TopRowOffset = 20 # 顶部偏移20
  13. # 自定义图片尺寸
  14. picture.Width = 150
  15. picture.Height = 150
  16. # 保存文件
  17. workbook.SaveToFile("add_custom_size_image.xlsx", ExcelVersion.Version2016)
  18. workbook.Dispose()
复制代码
通过 Python 删除 Excel 中图片的实现方法

Free Spire.XLS for Python 支持按索引删除指定图片或批量删除全部图片,以下是详细实现。
场景 1:删除指定位置的图片

工作表中的图片以列表情势存储在 Pictures 属性中,可通过索引(从 0 开始)定位并删除:
  1. from spire.xls import *
  2. from spire.xls.common import *
  3. # 加载 Excel 文件
  4. workbook = Workbook()
  5. workbook.LoadFromFile("InsertImage.xlsx")
  6. # 获取第一个工作表
  7. sheet = workbook.Worksheets[0]
  8. # 删除工作表中第一张图片
  9. sheet.Pictures[0].Remove()
  10. # 保存文件
  11. workbook.SaveToFile("DeleteImage.xlsx", ExcelVersion.Version2013)
  12. workbook.Dispose()
复制代码
删除工作表中全部图片

通过遍历 Pictures 列表,批量删除全部图片:
  1. from spire.xls import *
  2. from spire.xls.common import *
  3. # 加载 Excel 文件
  4. workbook = Workbook()
  5. workbook.LoadFromFile("InsertImage.xlsx")
  6. # 获取第一个工作表
  7. sheet = workbook.Worksheets[0]
  8. # 删除工作表中所有图片
  9. for i in range(sheet.Pictures.Count - 1, -1, -1):
  10.     sheet.Pictures[i].Remove()
  11. # 保存文件
  12. workbook.SaveToFile("DeleteAllImage.xlsx", ExcelVersion.Version2013)
  13. workbook.Dispose()
复制代码
📌 提示:删除后,单元格将规复为纯文本或空缺。
现实应用场景与发起

场景保举操纵数据陈诉天生主动添加图表或截图项目进度可视化在任务表中嵌入进度图采购单/条约文件处置惩罚添加公司 Logo 或审批页图片主动化审计流程删除旧版本中的冗余图片Free Spire.XLS for Python 为 Python 开发者提供了轻量、免费的 Excel 图片操纵方案,无需依赖 Microsoft Excel 即可完成图片的添加(指定单元格 / 自界说尺寸)和删除(指定图片 / 批量删除)。其上风在于跨平台兼容性和轻便的 API 操持,在现实应用中,可团结批量文件遍历等逻辑,进一步扩展功能,提升 Excel 处置惩罚的主动化服从。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表