Excel工作簿作为一款功能强大的数据处理与分析工具,被广泛应用于各种领域,不仅能够方便地组织和计算数据,还支持用户创建丰富多彩的图表,直观展示数据背后的洞察与趋势。然而,在报告编制、网页内容制作或分享数据分析成果时,直接嵌入整个Excel文件往往不够便捷,且可能受限于接收者的软件兼容性问题。而将Excel文件中的图表保存为图片格式(如PNG、JPEG等)则可以解决这些问题,不仅能确保图表的显示一致性跨平台,便于插入到PPT、文档或网页中,还能有效降低文件大小,加速在线传输与加载速度。本文将详细介绍如何利用Python自动化实现从Excel文件中提取图表并保存为图片。
文章目录
- 用Python将Excel文件中的图表保存为图片
- 用Python将Excel图表工作表保存为图片
本文所使用的方法基于Spire.XLS for Python,PyPI:pip install Spire.XLS
。
用Python将Excel文件中的图表保存为图片
该库中的Workbook.SaveChartAsImage()
方法和Workbook.SaveChartAsEmfImage()
方法能够将图片保存为图片和EMF图片流,之后我们再将图片流保存到文件,即可实现提取图表并保存为图像的操作。
以下是操作步骤:
- 导入所需模块。
- 创建
Workbook
对象并使用Workbook.LoadFromFile()
方法载入Excel文件。 - 遍历文件中的工作表,使用
Workbook.Worksheets.get_Item()
方法获取工作表。 - 遍历工作表中的图表,使用
Workbook.SaveChartAsImage().Save()
方法将图表保存到图片文件。 - 释放资源。
代码示例
from spire.xls import *
from spire.xls.common import *# 创建Workbook实例
workbook = Workbook()# 载入Excel文件
workbook.LoadFromFile("示例.xlsx")# 遍历文件中的工作表
for i in range(0, workbook.Worksheets.Count):# 获取工作表worksheet = workbook.Worksheets.get_Item(i)# 遍历工作表中的图表for j in range(0, worksheet.Charts.Count):# 将图表保存为图片chartImage = workbook.SaveChartAsImage(worksheet, j).Save(f"output/charts/chart{i+1}_{j+1}.png")workbook.Dispose()
保存结果
用Python将Excel图表工作表保存为图片
图表工作表(Chart Sheet)是Excel工作簿中专门用于显示图表的一个独立工作表类型,其中只包含一个图表。我们可以使用Workbook.GetChartSheetByName()
方法通过工作表名获取指定图表工作表,并使用Workbook.SaveChartAsImage(chartSheet: ChartSheet).Save()
方法将其转换为图片并保存。以下是操作步骤:
- 导入所需模块。
- 创建
Workbook
对象并使用Workbook.LoadFromFile()
方法载入Excel文件。 - 使用
Workbook.GetChartSheetByName()
方法获取指定图表工作表。 - 使用
Workbook.SaveChartAsImage().Save()
方法将图表工作表保存为图像。 - 释放资源。
代码示例
from spire.xls import *
from spire.xls.common import *# 创建一个Workbook实例
workbook = Workbook()# 加载一个Excel文件
workbook.LoadFromFile("示例.xlsx")# 获取一个图表工作表
chartSheet = workbook.GetChartSheetByName("图表一")# 将图表工作表保存为图片
workbook.SaveChartAsImage(chartSheet).Save("output/charts/chartsheet.png")workbook.Dispose()
结果
本文介绍了如何使用Python将Excel工作簿中的图表批量保存为图片。
更多Excel文件操作技巧请前往Spire.XLS for Python教程查看。