首页 > 编程语言 >Python批量保存Excel文件中的图表为图片

Python批量保存Excel文件中的图表为图片

时间:2024-06-21 17:59:20浏览次数:31  
标签:Python Excel 保存 图表 workbook Workbook

Excel工作簿作为一款功能强大的数据处理与分析工具,被广泛应用于各种领域,不仅能够方便地组织和计算数据,还支持用户创建丰富多彩的图表,直观展示数据背后的洞察与趋势。然而,在报告编制、网页内容制作或分享数据分析成果时,直接嵌入整个Excel文件往往不够便捷,且可能受限于接收者的软件兼容性问题。而将Excel文件中的图表保存为图片格式(如PNG、JPEG等)则可以解决这些问题,不仅能确保图表的显示一致性跨平台,便于插入到PPT、文档或网页中,还能有效降低文件大小,加速在线传输与加载速度。本文将详细介绍如何利用Python自动化实现从Excel文件中提取图表并保存为图片

文章目录

本文所使用的方法基于Spire.XLS for Python,PyPI:pip install Spire.XLS

用Python将Excel文件中的图表保存为图片

该库中的Workbook.SaveChartAsImage()方法和Workbook.SaveChartAsEmfImage()方法能够将图片保存为图片和EMF图片流,之后我们再将图片流保存到文件,即可实现提取图表并保存为图像的操作。
以下是操作步骤:

  1. 导入所需模块。
  2. 创建Workbook对象并使用Workbook.LoadFromFile()方法载入Excel文件。
  3. 遍历文件中的工作表,使用Workbook.Worksheets.get_Item()方法获取工作表。
  4. 遍历工作表中的图表,使用Workbook.SaveChartAsImage().Save()方法将图表保存到图片文件。
  5. 释放资源。

代码示例

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图表为图片

用Python将Excel图表工作表保存为图片

图表工作表(Chart Sheet)是Excel工作簿中专门用于显示图表的一个独立工作表类型,其中只包含一个图表。我们可以使用Workbook.GetChartSheetByName()方法通过工作表名获取指定图表工作表,并使用Workbook.SaveChartAsImage(chartSheet: ChartSheet).Save()方法将其转换为图片并保存。以下是操作步骤:

  1. 导入所需模块。
  2. 创建Workbook对象并使用Workbook.LoadFromFile()方法载入Excel文件。
  3. 使用Workbook.GetChartSheetByName()方法获取指定图表工作表。
  4. 使用Workbook.SaveChartAsImage().Save()方法将图表工作表保存为图像。
  5. 释放资源。

代码示例

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图表工作表为图片

本文介绍了如何使用Python将Excel工作簿中的图表批量保存为图片。

更多Excel文件操作技巧请前往Spire.XLS for Python教程查看。

标签:Python,Excel,保存,图表,workbook,Workbook
From: https://blog.csdn.net/Eiceblue/article/details/139747985

相关文章

  • python中的yield与yield from
    生成器与迭代器在Python中,迭代器就是可以用来迭代(比如for循环中的迭代)操作的对象,任何实现了__next__方法的对象都可以称之为迭代器。classFib:def__init__(self,n)->None:self.prev=0self.cur=1self.n=ndef__next__(self......
  • python rce
    之前学习过了rce在php下的利用,接下来来学习一下python中rce的利用,其根本主要就是执行系统命令的函数有所不同.os模块os是python中用来执行系统命令的包.下面是常用的两个方法.1.os.system:可以用来执行系统命令,但是无法将系统命令执行的结果返回.如果执行成功了会返回0,失败......
  • python读取excel文件
    在Python中,可以使用pandas库来读取Excel文件。首先,确保安装了pandas和openpyxl(用于处理Excel文件的库):pipinstallpandasopenpyxl以下是使用pandas读取Excel文件的示例代码:importpandasaspd#读取Excel文件df=pd.read_excel('example.xlsx')#显示数据框内容p......
  • Python学习之爬虫简单例子
    importBeautifulSoupimportpandasaspdimporturllib.request,urllib.errordefrequestUrl(url):  headers={    'User-Agent':"Mozilla/5.0(Macintosh;IntelMacOSX10_14_6)AppleWebKit/537.36(KHTML,likeGecko)Chrome/81.0.404......
  • 【python数据可视化】利用Python爬取天气数据并实现数据可视化,绘制天气轮播图
    用Python爬虫抓取全年天气数据并绘制天气轮播图一、运行结果:二、代码展示:由csv文件生成↓接下来是绘制天气轮播图运行结果:完整代码请看这里↓......
  • 我一直看不明白:“C++会被java/python等这些语言替代”
    在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「C++的资料从专业入门到高级教程」,点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!有些程序,是既可以用c++编写,也可以用java/python编写。如果这类程序以前主要是由c++编写,后来逐渐变成主要......
  • python pta 7-43 密码强度
    本题目要求根据输入密码字符串(字符串长度大于6),密码只能由大写字母、小写字母、数字及下划线四种类型组成,其密码强度为包含类型的数量,例如包含大小写则密码强度为2,四种类型全包含则为4.若包含其他类型的字符则输出IllegalPassword.输入样例1:在这里给出一组输入。例如:123456......
  • python pta 7-44 计算时间间隔
    输入两个日期,以hh:mm的格式输入,两者之间以空格分割。输出二者的时间间隔,同样以hh:mm的格式输出。其中,hh代表小时,mm代表分钟。若时间非法则输出IllegalTime.提示一:若不希望Python代码继续执行可调用exit()函数退出。提示二:为避免歧义,小时数限定为[0,24);分钟数限定为[0,60)......
  • python学习第二天之基本数据类型及其方法
    python的基本数据类型1.数字int2.字符串str3.布尔型bool4.列表list5.元组tuple6.字典dict一个一个来看,分别梳理各自的方法。一、数字int1.bit_length--得到指定数值的二进制的长度a=10print(a.bit_length)输出:4因为a=10,而10的二进制数是1010,刚好......
  • python 趣味习题_递归函数(炸弹迷宫的走法)
    @[toc]python学习中,常会遇到一些百思不得其解的难题,但有时“灵光一现”找准方法,难题便会迎刃而解。本专栏旨在记录本人解决问题的思考方法,及实现过程。有更好方法或对程序执行有疑问的伙伴,可在评论区留言,共同讨论。题目要求题目描述:在一串连续的迷宫(房间编号为1-11的......