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下MySQLdb用法实例分析
Jun 08 Python
python读写ini配置文件方法实例分析
Jun 30 Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
Python实现识别手写数字大纲
Jan 29 Python
Python连接Mssql基础教程之Python库pymssql
Sep 16 Python
python批量下载网站马拉松照片的完整步骤
Dec 05 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
深入了解Python 方法之类方法 & 静态方法
Aug 17 Python
python代码实现图书管理系统
Nov 30 Python
Python实战之用tkinter库做一个鼠标模拟点击器
Apr 27 Python
如何正确理解python装饰器
Jun 15 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
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
PHP模拟asp中response类实现方法
2015/08/08 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
2019/10/15 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
打造基于jQuery的高性能TreeView(asp.net)
2011/02/23 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
JS实现Enter键跳转及控件获得焦点
2013/08/12 Javascript
基于jquery实现的省市区级联无ajax
2013/09/24 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
javascript中去除数组重复元素的实现方法【实例】
2016/04/12 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
2017/05/02 Javascript
详解webpack 多页面/入口支持&公共组件单独打包
2017/06/29 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
Python 通过URL打开图片实例详解
2017/06/01 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
iPython pylab模式启动方式
2020/04/24 Python
python中添加模块导入路径的方法
2021/02/03 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
捐款倡议书
2014/04/14 职场文书
经销商年会策划方案
2014/05/29 职场文书
青年标兵事迹材料
2014/08/16 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python