python 用 xlwings 库 生成图表的操作方法


Posted in Python onDecember 22, 2019

xlwings是一个获得BSD许可的Python库,可以很容易地从Excel调用Python,反之亦然。 它适用于Windows和Mac上的Microsoft Excel。

在官方文档里找不到具体怎么生成图表,和一些参数设置。

这里自己整理了一下。

import xlwings as xw
app = xw.App()
wb = app.books.active
sht = wb.sheets.active

chart = sht.charts.add(100, 10)  # 100, 10 为图表放置的位置坐标。以像素为单位。
chart.set_source_data(sht.range('A1').expand())  # 参数为表格中的数据区域。
# chart.chart_type = i               # 用来设置图表类型,具体参数件下面详细说明。
chart.api[1].ChartTitle.Text = i          # 用来设置图表的标题。

下面是所有图表类型:

import xlwings as xw
app = xw.App()
wb = app.books.active
sht = wb.sheets.active
# 生成图表的数据
sht.range('A1').value = [['时间', '数量'], ['1日', 2], ['2日', 1], ['3日', 3]
             , ['4日', 4], ['5日', 5], ['6日', 6]]
"""图表类型参数,被注释的那几个,无法生成对应的图表"""
dic = {
  '3d_area': -4098,
  '3d_area_stacked': 78,
  '3d_area_stacked_100': 79,
  '3d_bar_clustered': 60,
  '3d_bar_stacked': 61,
  '3d_bar_stacked_100': 62,
  '3d_column': -4100,
  '3d_column_clustered': 54,
  '3d_column_stacked': 55,
  '3d_column_stacked_100': 56,
  '3d_line': -4101,
  '3d_pie': -4102,
  '3d_pie_exploded': 70,
  'area': 1,
  'area_stacked': 76,
  'area_stacked_100': 77,
  'bar_clustered': 57,
  'bar_of_pie': 71,
  'bar_stacked': 58,
  'bar_stacked_100': 59,
  'bubble': 15,
  'bubble_3d_effect': 87,
  'column_clustered': 51,
  'column_stacked': 52,
  'column_stacked_100': 53,
  'cone_bar_clustered': 102,
  'cone_bar_stacked': 103,
  'cone_bar_stacked_100': 104,
  'cone_col': 105,
  'cone_col_clustered': 99,
  'cone_col_stacked': 100,
  'cone_col_stacked_100': 101,
  'cylinder_bar_clustered': 95,
  'cylinder_bar_stacked': 96,
  'cylinder_bar_stacked_100': 97,
  'cylinder_col': 98,
  'cylinder_col_clustered': 92,
  'cylinder_col_stacked': 93,
  'cylinder_col_stacked_100': 94,
  'doughnut': -4120,
  'doughnut_exploded': 80,
  'line': 4,
  'line_markers': 65,
  'line_markers_stacked': 66,
  'line_markers_stacked_100': 67,
  'line_stacked': 63,
  'line_stacked_100': 64,
  'pie': 5,
  'pie_exploded': 69,
  'pie_of_pie': 68,
  'pyramid_bar_clustered': 109,
  'pyramid_bar_stacked': 110,
  'pyramid_bar_stacked_100': 111,
  'pyramid_col': 112,
  'pyramid_col_clustered': 106,
  'pyramid_col_stacked': 107,
  'pyramid_col_stacked_100': 108,
  'radar': -4151,
  'radar_filled': 82,
  'radar_markers': 81,
  # 'stock_hlc': 88,
  # 'stock_ohlc': 89,
  # 'stock_vhlc': 90,
  # 'stock_vohlc': 91,
  # 'surface': 83,
  # 'surface_top_view': 85,
  # 'surface_top_view_wireframe': 86,
  # 'surface_wireframe': 84,
  'xy_scatter': -4169,
  'xy_scatter_lines': 74,
  'xy_scatter_lines_no_markers': 75,
  'xy_scatter_smooth': 72,
  'xy_scatter_smooth_no_markers': 73
}
w = 385
h = 241
n = 0
x = 100
y = 10
for i in dic.keys():
  xx = x + n % 3*w  # 用来生成图表放置的x坐标。
  yy = y + n//3*h   # 用来生成图表放置的y坐标。
  chart = sht.charts.add(xx, yy)
  chart.set_source_data(sht.range('A1').expand())
  chart.chart_type = i
  chart.api[1].ChartTitle.Text = i
  n += 1
wb.save('chart_图表')
wb.close()
app.quit()

总结

以上所述是小编给大家介绍的python 用 xlwings 库 生成图表的操作方法,希望对大家有所帮助!

Python 相关文章推荐
Python实现备份MySQL数据库的方法示例
Jan 11 Python
Python AES加密实例解析
Jan 18 Python
python 列表降维的实例讲解
Jun 28 Python
Python unittest单元测试框架总结
Sep 08 Python
python判断数字是否是超级素数幂
Sep 27 Python
Python魔法方法详解
Feb 13 Python
Python魔法方法功能与用法简介
Apr 04 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
关于pymysql模块的使用以及代码详解
Sep 01 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
Mar 23 Python
python实现PolynomialFeatures多项式的方法
Jan 06 Python
python通过opencv调用摄像头操作实例分析
Jun 07 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 #Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 #Python
python FTP批量下载/删除/上传实例
Dec 22 #Python
python 实现保存最新的三份文件,其余的都删掉
Dec 22 #Python
python中的split()函数和os.path.split()函数使用详解
Dec 21 #Python
python 操作hive pyhs2方式
Dec 21 #Python
python 消费 kafka 数据教程
Dec 21 #Python
You might like
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
真正的ZIP文件操作类(php)
2007/07/21 PHP
php制作文本式留言板
2015/03/18 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
2016/12/14 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
前端开发之便利店收银系统代码
2019/12/27 Javascript
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
python开发入门——列表生成式
2020/09/03 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
创业计划书如何编写
2014/02/06 职场文书
户外亲子活动策划方案
2014/02/07 职场文书
《金钱的魔力》教学反思
2014/02/24 职场文书
化工实习心得体会
2014/09/09 职场文书
专业见习报告范文
2014/11/03 职场文书
2015年财务部工作总结
2015/04/10 职场文书
初中物理教学反思
2016/02/19 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python