在数据可视化和自动化办公日益普及的背景下,Excel文件中嵌入的图片(如图表快照、产品照片、Logo等)承载了大量关键信息。手动提取这些图片不仅耗时,而且难以批量操作。通过Python脚本,我们可以自动化提取Excel中的所有图片,便于内容归档、报告生成或图像处理等进一步应用。本文将介绍如何使用Python提取并保存Excel文件中的图片

本文使用的工具是 Free Spire.XLS for Python,PyPI:pip install spire.xls.free

用Python提取并保存Excel中的图片

我们可以通过库中提供的接口,逐个读取工作表中的嵌入图片并将其导出为图像文件。整个流程简单高效,适用于批量图片提取任务。
操作步骤如下:

  1. 创建 Workbook 实例并使用 LoadFromFile() 方法加载目标Excel文件。
  2. 遍历所有工作表,使用 Workbook.Worksheets.get_Item() 方法获取当前工作表。
  3. 通过 Worksheet.Pictures 属性获取每个工作表中的图片集合并遍历集合。
  4. 使用 Worksheet.Pictures.get_Item() 获取当前图片,然后使用 XlsBitmapShape.SaveToImage() 方法将图片保存为本地图像文件(如PNG格式)。
  5. 使用动态命名规则避免文件覆盖,便于后续识别。
  6. 释放资源。

代码示例

from spire.xls import Workbook

# 创建Workbook对象
workbook = Workbook()

# 载入Excel文件
workbook.LoadFromFile("Sample.xlsx")

# 遍历工作簿中的工作表
for i in range(workbook.Worksheets.Count):
    # 获取当前工作表
    sheet = workbook.Worksheets.get_Item(i)
    # 遍历工作表中的图片
    for j in range(sheet.Pictures.Count):
        # 获取当前图片
        pic = sheet.Pictures.get_Item(j)
        # 将图片保存为文件
        pic.SaveToImage("output/ExcelImages/Sheet_" + str(i) + "Image_" + str(j) + ".png")

# 释放资源
workbook.Dispose()

结果图片

Python提取Excel文件中的图片

本文演示了如何使用Python从Excel文件中批量提取图片并保存为本地文件。该方法适用于办公自动化、文档重构、图像归档等多个场景,具有良好的扩展性和实用性。

如需进一步分类管理、转换图片格式或提取图片元数据,可结合 Pillow 等图像处理库进行拓展开发。


大丸子
72 声望7 粉丝