python 图表_python导出excel charts图表
在Excel vba将chart另存为图片篇中讲了如何通过vba宏将excel 中的chart图表导出为的图片,本篇讲下如何使用纯python代码将excel 中的图表导出为图片。这里需要使用的模块有win32com、pythoncom模块。
网上经查询有人已经写好的模块pyxlchart,具体代码如下:
from win32com.client import Dispatch
import os
import pythoncom
class Pyxlchart(object):
"""
This class exports charts in an Excel Spreadsheet to the FileSystem
win32com libraries are required.
"""
def __init__(self):
pythoncom.CoInitialize()
self.WorkbookDirectory = ''
self.WorkbookFilename = ''
self.GetAllWorkbooks = False
self.SheetName = ''
self.ChartName = ''
self.GetAllWorkbookCharts = False
self.GetAllWorksheetCharts = False
self.ExportPath = ''
self.ImageFilename = ''
self.ReplaceWhiteSpaceChar = '_'
self.ImageType = 'jpg'
def __del__(self):
pass
def start_export(self):
if self.WorkbookDirectory == '':
return "WorkbookDirectory not set"
else:
self._export()
def _export(self):
"""
Exports Charts as determined by the settings in class variabels.
"""
excel = Dispatch("excel.application")
excel.Visible = False
wb = excel.Workbooks.Open(os.path.join(self.WorkbookDirectory ,self.WorkbookFilename))
self._get_Charts_In_Worksheet(wb,self.SheetName,self.ChartName)
wb.Close(False)
excel.Quit()
def _get_Charts_In_Worksheet(self,wb,worksheet = "", chartname = ""):
if worksheet != "" and chartname != "":
sht = self._change_sheet(wb,worksheet)
cht = sht.ChartObjects(chartname)
self._save_chart(cht)
return
if worksheet == "":
for sht in wb.Worksheets:
for cht in sht.ChartObjects():
if chartname == "":
self._save_chart(cht)
else:
if chartname == cht.Name:
self._save_chart(cht)
else:
sht = wb.Worksheets(worksheet)
for cht in sht.ChartObjects():
if chartname == "":
self._save_chart(cht)
else:
if chartname == cht.Name:
self._save_chart(cht)
def _change_sheet(self,wb,worksheet):
try:
return wb.Worksheets(worksheet)
except:
raise NameError('Unable to Select Sheet: ' + worksheet + ' in Workbook: ' + wb.Name)
def _save_chart(self,chartObject):
imagename = self._get_filename(chartObject.Name)
savepath = os.path.join(self.ExportPath,imagename)
print savepath
chartObject.Chart.Export(savepath,self.ImageType)
def _get_filename(self,chartname):
"""
Replaces white space in self.WorkbookFileName with the value given in self.ReplaceWhiteSpaceChar
If self.ReplaceWhiteSpaceChar is an empty string then self.WorkBookFileName is left as is
"""
if self.ImageFilename == '':
self.ImageFilename == chartname
if self.ReplaceWhiteSpaceChar != '':
chartname.replace(' ',self.ReplaceWhiteSpaceChar)
if self.ImageFilename != "":
return self.ImageFilename + "_" + chartname + "." + self.ImageType
else:
return chartname + '.' + self.ImageType
if __name__ == "__main__":
xl = Pyxlchart()
xl.WorkbookDirectory = "\\\\maawtns01\\discipline\\procurement\\MATERIEL\\Raw Material\\Data Management\\Hawk"
xl.WorkbookFilename = "Hawk Workability KPI.xlsm"
xl.SheetName = ""
xl.ImageFilename = "MyChart1"
xl.ExportPath = "d:\\pycharts"
xl.ChartName = ""
xl.start_export()
print "This file does not currently allow direct access"
print "Please import PyXLChart and run start_export()"
这里还使用Excel vba将chart另存为图片篇中创建的chart_column.xlsx表,使用上面的模块的方法如下:
from pyxlchart import Pyxlchart
xl = Pyxlchart()
xl.WorkbookDirectory = "D:\\"
xl.WorkbookFilename = "chart_column.xlsx"
xl.SheetName = ""
#xl.ImageFilename = "MyChart1"
xl.ExportPath = "d:\\"
xl.ChartName = ""
xl.start_export()
由于有该表里有多张图表,所以上面未指定xl.ImageFilename ,使用示例如下:
python 图表_python导出excel charts图表相关推荐
- 案例分享:Qt多通道数据采集系统(通道配置、电压转换、采样频率、通道补偿值、定时采集、导出excel和图表、自动XY轴、隐藏XY轴、实时隐藏显示通道)
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110941614 长期持续带来更多项目与技术分 ...
- python读excel表格数据绘制图表_Python读取Excel数据生成图表 v2.0
原博文 2020-06-15 15:09 − ## Python读取Excel数据生成图表 v2.0 ## 一.需求背景 自己一直在做一个周基金定投模拟,每周需要添加一行数据,并生成图表.以前一直是用 ...
- 使用python将数据导出excel表格
python可用于数据分析,有时候获得了数据需要导出以作其他作用.本文就介绍python导出excel表格的方法. 导出excel表格,python提供了两个库:xlwt,xlrd.本文只讨论 ...
- 风变python怎么样_Python取代Excel?风变编程带你了解如何更好地学Python!
当前最简单.最流行的编程语言是什么?是Python.最近,谷歌公布的编程语言流行指数显示,Python目前仍然是全球范围内最受欢迎的技术语言. 而得益于简洁.易读.易维护等特点,Python可广泛运用 ...
- python自动化_Python 实现Excel自动化办公上
今天的文章分享Python 如何轻松操作Excel 这款office 办公软件的,在Python 中你要针对某个对象进行操作,是需要安装与其对应的第三方库的,这里对于Excel 也不例外,它也有对应的 ...
- python 制作数据图表_python制作各种数据图表
工具集合 数据由python处理,所以首先需要安装python,官网下载即可.可以不用安装python的编辑器,自己用Notepad写就可以. 安装图表处理库pyecharts,命令是:pip ins ...
- python 热力图_python高维数据型图表热力图、树形图
热力图 热力图(heat map) 一种将规则化矩阵数据转换成颜色色调的常用的可视化方法: 每个单元对应数据的某些属性: 属性的值通过颜色映射转换为不同色调并填充规则单元: 表格坐标的排列和顺序都可以 ...
- python给excel添加超链接_python导出excel(含插入图片,超链接)
使用xlsxwriter模块 ``` import xlsxwriter import pymysql.cursors connect = pymysql.Connect( host='localho ...
- Python自动化巡检导出Excel表
简介 在现在这个网络越来越大的情况下,我们管理调式设备手工方式已经显得效率低下,Python自动化运维能够很好的帮助我们把一些单调的命令批量进行配置,还可以在巡检的时候提取我们需要的信息. 介绍 下面 ...
最新文章
- ubuntu终端基础命令
- 怎么学python-没有任何基础的人,该如何学习Python?「附具体步骤」
- Android系统匿名共享内存Ashmem(Anonymous Shared Memory)简要介绍和学习计划
- 一文看尽9篇语义分割最新论文(GPSNet/Graph-FCN/HMANet等)
- 寻仙新马源码一键端_强大,腾讯开源前后端接口开发工具!
- sqlalchemy与mysql区别_sqlite3和sqlalchemy有什么区别?
- leetcode 122. 买卖股票的最佳时机 II 思考分析
- 游戏入口点GameEntryPoint
- 「leetcode」234. 回文链表:【数组模拟】【翻转后半部分】详解
- URAL-1998 The old Padawan 二分
- 【细胞分割】基于matlab GUI分水岭算法细胞分割计数【含Matlab源码 637期】
- win10系统查看占用端口
- 四十个鹏城春夏,一场数字繁花
- mac c语言 新手,第1次买Mac必看,新手买Mac全攻略!
- 8种绝对成交的销售话术技巧
- 服务器怎么修改mac地址怎么办,服务器修改mac地址重启后会恢復原mac吗?
- 服务器系统能装打印机吗,现在云服务器怎么安装打印机
- redis的zset为什么用跳表不用红黑树
- 一个迷你音频播放器项目
- 【云原生 · Kubernetes】部署kube-apiserver集群
热门文章
- Centos 7.5 安装Zabbix4.0
- (译)第一次Android开发单飞
- .NET Core的日志[2]:将日志输出到控制台
- LINUX下的21个特殊符号 转
- SQL Server 判断数据库是否存在,表是否存在
- transmission Linux(debian)下的BT下载客户端安装
- AIX HA模拟宕机--维护磁带机
- Lucene的简单应用
- SilverlightMMORPG窝窝世界明天4月28日封测
- 【硬核】秒杀活动技术方案,Redis申请32个G,被技术总监挑战了...