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 实现文件的递归拷贝实现代码
Aug 02 Python
python中利用await关键字如何等待Future对象完成详解
Sep 07 Python
python素数筛选法浅析
Mar 19 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
Oct 17 Python
对python 合并 累加两个dict的实例详解
Jan 21 Python
python for 循环获取index索引的方法
Feb 01 Python
python下载微信公众号相关文章
Feb 26 Python
Kali Linux安装ipython2 和 ipython3的方法
Jul 11 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
python 穷举指定长度的密码例子
Apr 02 Python
Python3.7 读取音频根据文件名生成脚本的代码
Apr 07 Python
Python 文本滚动播放器的实现代码
Apr 25 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
虫族 ZERG 概述
2020/03/14 星际争霸
php 引用(&)详解
2009/11/20 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
JS关闭窗口时产生的事件及用法示例
2016/08/20 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
详解Python里使用正则表达式的ASCII模式
2017/11/02 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
Python 记录日志的灵活性和可配置性介绍
2018/02/27 Python
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
查看django版本的方法分享
2018/05/14 Python
python学生管理系统
2019/01/30 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
Python中有几个关键字
2020/06/04 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
css3发光搜索表单分享
2014/04/11 HTML / CSS
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
广告设计应届生求职信
2014/03/01 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
Python re.sub 反向引用的实现
2021/07/07 Python