Excel文件常作为数据分析和展示的重要工具,承载复杂图表、形状等非结构化数据。当我们需要再利用这些图形化内容元素时,手动逐项提取不仅效率低下,且难以应对大规模文件处理需求。通过Python实现自动化批量保存,能够突破人工操作的局限性,显著提升数据管理的标准化水平——无论是定期生成的可视化报告存档、跨部门协作中的元素复用,还是构建机器学习训练所需的图像数据集,自动化脚本均可确保元素提取的完整性与命名规范性。本文将介绍如何使用Python将Excel文件中的图表和形状保存为图片,从而方便对其再利用。
- 用Python将Excel文件中的图表保存为图片
- 用Python将Excel文件中的图表工作表保存为图片
- 用Python将Excel文件中的形状保存为图片
本文所使用的方法需要用到免费的Free Spire.XLS for Python,PyPI:pip install spire.xls.free
。
用Python将Excel文件中的图表保存为图片
库中提供的Workbook.SaveChartAsImage()
方法可以将指定工作表中的指定图表或所有图表保存为图片流,然后我们再使用Stream.Save()
方法将图片流保存到文件,即可实现将Excel图表导出为图片文件。
需要注意的是,此方法不能保存图表工作表(仅包含一个图表且无单元格及其他数据的特殊工作表)为图片,图表工作表需要另外进行保存操作。
以下是操作步骤示例:
- 导入所需模块:
Workbook
。 - 创建
Workbook
对象,使用Workbook.LoadFromFile()
载入Excel文件。 - 遍历工作簿中的工作表,使用
Workbook.Worksheets.get_Item()
方法获取工作表。 - 使用
Worksheet.Charts
属性获取工作表中的所有图表。 - 遍历工作表中的图表,使用
Workbook.SaveChartAsImage()
方法将图表保存为图片流。 - 使用
Stream.Save()
方法图片流保存为文件。 - 释放资源。
代码示例
from spire.xls import Workbook
# 创建Workbook对象
workbook = Workbook()
# 载入Excel文件
workbook.LoadFromFile("Sample.xlsx")
# 遍历Excel文件中的工作表
for i in range(workbook.Worksheets.Count):
# 获取工作表
worksheet = workbook.Worksheets.get_Item(i)
# 遍历工作表中的图表
for j in range(worksheet.Charts.Count):
# 将图表保存为图片
image = workbook.SaveChartAsImage(worksheet, j)
# 将图片保存到文件
image.Save(f"output/Images/Sheet{i}_Chart{j}.png")
workbook.Dispose()
结果
用Python将Excel文件中的图表工作表保存为图片
我们可以使用Workbook.ChartSheets
属性获取工作簿中的所有图表工作表,然后使用Workbook.SaveChartAsImage()
方法将图表工作表的图表保存为图片流,最后再保存为文件。以下是操作步骤示例:
- 导入所需模块:
Workbook
。 - 创建
Workbook
对象,使用Workbook.LoadFromFile()
载入Excel文件。 - 使用
Workbook.ChartSheets
属性获取所有图表工作表。 - 遍历图表工作表,并使用
Workbook.SaveChartAsImage()
方法将图表工作表的图表保存为图片流。 - 使用
Stream.Save()
方法图片流保存为文件。 - 释放资源。
代码示例
from spire.xls import Workbook, XlsShape
# 创建Workbook对象
workbook = Workbook()
# 载入Excel文件
workbook.LoadFromFile("Sample.xlsx")
# 遍历Excel文件中的图表工作表
for i in range(len(workbook.Chartsheets)):
# 获取图表工作表
sheet = workbook.Chartsheets[i]
# 将图表工作表保存为图片流
image = workbook.SaveChartAsImage(sheet)
# 将图片流保存为图片文件
image.Save(f"output/Images/Chart.png")
workbook.Dispose()
结果
用Python将Excel文件中的形状保存为图片
Worksheet.PrstGeomShapes
属性可以帮助我们获取一个工作表中的所有形状,我们可以遍历获取到的形状,然后将其转换为XlsShape
对象并使用XlsShape.SaveToImage()
方法将其保存为图片流,最后实现Excel形状保存为图片的操作。以下是操作步骤示例:
- 导入所需模块:
Workbook
。 - 创建
Workbook
对象,使用Workbook.LoadFromFile()
载入Excel文件。 - 遍历工作簿中的工作表,使用
Workbook.Worksheets.get_Item()
方法获取工作表。 - 使用
Worksheet.PrstGeomShapes
属性获取工作表中的所有形状。 - 遍历所有形状,将其转换为
XlsShape
对象,然后使用XlsShape.SaveToImage()
方法将其保存为图片流。 - 使用
Stream.Save()
方法图片流保存为文件。 - 释放资源。
代码示例
from spire.xls import Workbook, XlsShape
# 创建Workbook对象
workbook = Workbook()
# 载入Excel文件
workbook.LoadFromFile("Sample.xlsx")
# 遍历Excel文件中的工作表
for i in range(workbook.Worksheets.Count):
# 获取工作表
worksheet = workbook.Worksheets.get_Item(i)
# 遍历工作表中的形状
for j in range(worksheet.PrstGeomShapes.Count):
# 获取形状
shape = worksheet.PrstGeomShapes.get_Item(j)
# 将形状转换为XlsShape对象
xlsShape = XlsShape(shape)
# 将形状保存为图片流
image = xlsShape.SaveToImage()
# 将图片流保存到文件
image.Save(f"output/Images/Sheet{i}_Shape{j}.png")
workbook.Dispose()
结果
本文演示了如何使用Python将Excel文件中的图表、形状以及图表工作表保存为图片文件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。