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实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
浅谈Python中用datetime包进行对时间的一些操作
Jun 23 Python
Python中matplotlib中文乱码解决办法
May 12 Python
python实现稀疏矩阵示例代码
Jun 09 Python
Python 中字符串拼接的多种方法
Jul 30 Python
tensorflow学习教程之文本分类详析
Aug 07 Python
Python pandas DataFrame操作的实现代码
Jun 21 Python
Python配置文件处理的方法教程
Aug 29 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
python使用pymongo与MongoDB基本交互操作示例
Apr 09 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 Python
python dict如何定义
Sep 02 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
php5.3 废弃函数小结
2010/05/16 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
2010/07/04 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
PHP远程连接oracle数据库操作实现方法图文详解
2019/04/11 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
贴一个在Mozilla中常用的Javascript代码
2007/01/09 Javascript
限制文本框输入N个字符的js代码
2010/05/13 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
vue中添加mp3音频文件的方法
2018/03/02 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
Python中使用asyncio 封装文件读写
2016/09/11 Python
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
2013/06/06 HTML / CSS
HTML5实现的震撼3D焦点图动画的示例代码
2019/09/26 HTML / CSS
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
前台文员岗位职责及工作流程
2013/11/19 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
优秀英文求职信范文
2015/03/19 职场文书
工程合作意向书范本
2015/05/09 职场文书
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript