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 相关文章推荐
压缩包密码破解示例分享(类似典破解)
Jan 17 Python
python计算对角线有理函数插值的方法
May 07 Python
Python的Django框架下管理站点的基本方法
Jul 17 Python
简单介绍使用Python解析并修改XML文档的方法
Oct 15 Python
对python3 urllib包与http包的使用详解
May 10 Python
Tesserocr库的正确安装方式
Oct 19 Python
django query模块
Apr 20 Python
使用Python实现毫秒级抢单功能
Jun 06 Python
使用pandas读取文件的实现
Jul 31 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
Python面向对象原理与基础语法详解
Jan 02 Python
asyncio异步编程之Task对象详解
Mar 13 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
Memcache 在PHP中的使用技巧
2010/02/08 PHP
PHP编码规范的深入探讨
2013/06/06 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
JS option location 页面跳转实现代码
2008/12/27 Javascript
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
JS动态添加选项案例分析
2016/10/17 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
jQuery扇形定时器插件pietimer使用方法详解
2017/07/18 jQuery
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
详解在vue-cli中使用路由
2017/09/25 Javascript
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
简单实现python收发邮件功能
2018/01/05 Python
python基于http下载视频或音频
2018/06/20 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
用HTML5制作烟火效果的教程
2015/05/12 HTML / CSS
AmazeUI 单选框和多选框的实现示例
2020/08/18 HTML / CSS
竞争性谈判邀请书
2014/02/06 职场文书
开业庆典活动策划方案
2014/09/21 职场文书
先进党支部事迹材料
2014/12/24 职场文书
介绍长城的导游词
2015/01/30 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL
Python语言规范之Pylint的详细用法
2021/06/24 Python