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获取apk文件URL地址实例
Nov 01 Python
使用Python的Django框架实现事务交易管理的教程
Apr 20 Python
栈和队列数据结构的基本概念及其相关的Python实现
Aug 24 Python
Python之py2exe打包工具详解
Jun 14 Python
Python 快速实现CLI 应用程序的脚手架
Dec 05 Python
django Serializer序列化使用方法详解
Oct 16 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
Python实现图片批量加入水印代码实例
Nov 30 Python
解决Python import docx出错DLL load failed的问题
Feb 13 Python
python使用pyecharts库画地图数据可视化的实现
Mar 25 Python
calendar在python3时间中常用函数举例详解
Nov 18 Python
变长双向rnn的正确使用姿势教学
May 31 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
利用PHP制作简单的内容采集器的代码
2007/11/28 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
PHP中__set()实例用法和基础讲解
2019/07/23 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
DWZ table的原生分页浅谈
2013/03/01 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
react-native滑动吸顶效果的实现过程
2019/06/03 Javascript
js里面的变量范围分享
2020/07/18 Javascript
在Python的Django框架中编写编译函数
2015/07/20 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
The Outnet亚太地区:折扣设计师时装店
2019/12/05 全球购物
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
销售人员自我评价怎么写
2013/09/19 职场文书
经济与贸易专业应届生求职信
2013/11/19 职场文书
骨干教师培训方案
2014/05/06 职场文书
员工安全责任书范本
2014/07/24 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
鲁迅故居导游词
2015/02/05 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python