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小技巧分享
Nov 22 Python
python 获取当天每个准点时间戳的实例
May 22 Python
Python连接Redis的基本配置方法
Sep 13 Python
python利用百度AI实现文字识别功能
Nov 27 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
Dec 30 Python
python调用其他文件函数或类的示例
Jul 16 Python
python issubclass 和 isinstance函数
Jul 25 Python
Python Subprocess模块原理及实例
Aug 26 Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 Python
kafka监控获取指定topic的消息总量示例
Dec 23 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
Mar 24 Python
python geopandas读取、创建shapefile文件的方法
Jun 29 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模块rewrite_module (转)
2007/02/14 PHP
深入解析php中的foreach问题
2013/06/30 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
javascript for循环设法提高性能
2010/02/24 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
微信小程序picker组件下拉框选择input输入框的实例
2017/09/20 Javascript
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
NodeJS加密解密及node-rsa加密解密用法详解
2018/10/12 NodeJs
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
Python中操作MySQL入门实例
2015/02/08 Python
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
大学生毕业自我评价范文分享
2013/11/07 职场文书
大学生收银员求职信分享
2014/01/02 职场文书
最新茶叶店创业计划书
2014/01/14 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
公司管理建议书
2015/09/14 职场文书
2016年“世界环境日”校园广播稿
2015/12/18 职场文书
python机器学习实现oneR算法(以鸢尾data为例)
2022/03/03 Python
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫
MySQL数据库表约束讲解
2022/06/21 MySQL