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中使用 Selenium 实现网页截图实例
Jul 18 Python
Python生成随机验证码的两种方法
Dec 22 Python
python安装oracle扩展及数据库连接方法
Feb 21 Python
Python基于列表模拟堆栈和队列功能示例
Jan 05 Python
python之Flask实现简单登录功能的示例代码
Dec 24 Python
python实现倒计时小工具
Jul 29 Python
10个Python面试常问的问题(小结)
Nov 20 Python
Django实现从数据库中获取到的数据转换为dict
Mar 27 Python
Django 5种类型Session使用方法解析
Apr 29 Python
在pycharm中无法import所安装的库解决方案
May 31 Python
Python干货实战之八音符酱小游戏全过程详解
Oct 24 Python
python读取并查看npz/npy文件数据以及数据显示方法
Apr 14 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
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
javascript eval函数深入认识
2009/02/21 Javascript
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
js数组的操作指南
2014/12/28 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
2018/09/30 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
Python判断文本中消息重复次数的方法
2016/04/27 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
2018/02/26 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
Python反射和内置方法重写操作详解
2018/08/27 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
python dumps和loads区别详解
2020/02/04 Python
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
电大自我鉴定范文
2013/10/01 职场文书
幼儿园母亲节活动方案
2014/03/10 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
法人代表证明书格式
2014/10/01 职场文书
2015年采购工作总结
2015/04/10 职场文书
鸦片战争观后感
2015/06/09 职场文书
2015选调生工作总结
2015/07/24 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
java项目构建Gradle的使用教程
2022/03/24 Java/Android
nginx配置限速限流基于内置模块
2022/05/02 Servers
nginx 配置指令之location使用详解
2022/05/25 Servers