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自动格式化json文件的方法
Mar 11 Python
浅谈Python实现Apriori算法介绍
Dec 20 Python
python爬虫爬取某站上海租房图片
Feb 04 Python
python爬取个性签名的方法
Jun 17 Python
详解Python给照片换底色(蓝底换红底)
Mar 22 Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
Sep 06 Python
Python 用三行代码提取PDF表格数据
Oct 13 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
python实现简单反弹球游戏
Apr 12 Python
python tqdm用法及实例详解
Jun 16 Python
浅谈Python中的正则表达式
Jun 28 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
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
URL地址中的#符号使用说明
2011/02/12 Javascript
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
javascript两种function的定义介绍及区别说明
2013/05/02 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
javascript检测两个数组是否相似
2015/05/19 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
Python3 中文文件读写方法
2018/01/23 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
Python3基础教程之递归函数简单示例
2019/06/07 Python
python如何获取apk的packagename和activity
2020/01/10 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
Python学习之路之pycharm的第一个项目搭建过程
2020/06/18 Python
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
文案策划求职信
2014/03/18 职场文书
员工年终自我评价
2014/09/14 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
民主生活会剖析材料
2014/09/30 职场文书
质量负责人岗位职责
2015/02/15 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
56句经典英文座右铭
2019/08/09 职场文书
python实现简单区块链结构
2021/04/25 Python
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python
Spring Data JPA使用JPQL与原生SQL进行查询的操作
2021/06/15 Java/Android
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS