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 相关文章推荐
flask中过滤器的使用详解
Aug 01 Python
Python多线程原理与用法详解
Aug 20 Python
Python 利用pydub库操作音频文件的方法
Jan 09 Python
python 自定义对象的打印方法
Jan 12 Python
详解python的四种内置数据结构
Mar 19 Python
Python自动化导出zabbix数据并发邮件脚本
Aug 16 Python
Python解析json代码实例解析
Nov 25 Python
常用的10个Python实用小技巧
Aug 10 Python
python使用多线程查询数据库的实现示例
Aug 17 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
Feb 25 Python
Python 使用dict实现switch的操作
Apr 07 Python
如何用python反转图片,视频
Apr 24 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
PHP利用header跳转失效的解决方法
2014/10/24 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
php微信开发之图片回复功能
2018/06/14 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
JavaScript 继承详解 第一篇
2009/08/30 Javascript
Document对象内容集合(比较全)
2010/09/06 Javascript
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
2011/01/06 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
浅谈Vue SPA 首屏加载优化实践
2017/12/15 Javascript
layui table 参数设置方法
2018/08/14 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
零基础写python爬虫之urllib2使用指南
2014/11/05 Python
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
Python计算三角函数之asin()方法的使用
2015/05/15 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
美国领先的精品家居照明和装饰产品在线零售商:LightsOnline.com
2018/01/23 全球购物
教育专业个人求职信
2013/12/02 职场文书
入党思想汇报怎么写
2014/04/03 职场文书
企业党员个人自我评价
2014/09/20 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
小学优秀学生评语
2014/12/29 职场文书
贷款担保书
2015/01/20 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
 Python 中 logging 模块使用详情
2022/03/03 Python