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中的WSGI接口
May 11 Python
python测试mysql写入性能完整实例
Jan 18 Python
详解Python最长公共子串和最长公共子序列的实现
Jul 07 Python
python多任务及返回值的处理方法
Jan 22 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
Feb 18 Python
浅谈python新式类和旧式类区别
Apr 26 Python
python tkinter组件摆放方式详解
Sep 16 Python
python实现局域网内实时通信代码
Dec 22 Python
通过python 执行 nohup 不生效的解决
Apr 16 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 Python
python中二分查找法的实现方法
Dec 06 Python
利用python查看数组中的所有元素是否相同
Jan 08 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
php4的彩蛋
2006/10/09 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
微信支付PHP SDK ―― 公众号支付代码详解
2016/09/13 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
解决vue项目router切换太慢问题
2020/07/19 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
在Windows8上的搭建Python和Django环境
2014/07/03 Python
Python 字典与字符串的互转实例
2017/01/13 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
python http基本验证方法
2018/12/26 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
pygame实现五子棋游戏
2019/10/29 Python
python连接mysql有哪些方法
2020/06/24 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
高中生家长会演讲稿
2014/01/14 职场文书
运动会邀请函范文
2014/01/31 职场文书
保护环境的标语
2014/06/09 职场文书
同志主要表现材料
2014/08/21 职场文书
机关党员公开承诺书
2014/08/30 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
python turtle绘制多边形和跳跃和改变速度特效
2022/03/16 Python