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使用正则搜索字符串或文件中的浮点数代码实例
Jul 11 Python
寻找网站后台地址的python脚本
Sep 01 Python
python连接MySQL数据库实例分析
May 12 Python
python开发之函数定义实例分析
Nov 12 Python
Python使用PIL模块生成随机验证码
Nov 21 Python
python2与python3中关于对NaN类型数据的判断和转换方法
Oct 30 Python
关于python中密码加盐的学习体会小结
Jul 15 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
Python3将数据保存为txt文件的方法
Sep 12 Python
Python多线程Threading、子线程与守护线程实例详解
Mar 24 Python
Python3自定义json逐层解析器代码
May 11 Python
python模块如何查看
Jun 16 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
动易数据转成dedecms的php程序
2007/04/07 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
简单实现php上传文件功能
2017/09/21 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
JAVASCRIPT  THIS详解 面向对象
2009/03/25 Javascript
jQuery timers计时器简单应用说明
2010/10/28 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
2013/06/13 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
分享Python开发中要注意的十个小贴士
2016/08/30 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
python打造爬虫代理池过程解析
2019/08/15 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
Python的logging模块基本用法
2020/12/24 Python
python asyncio 协程库的使用
2021/01/21 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
《鞋匠的儿子》教学反思
2014/03/02 职场文书
门市房租房协议书
2014/12/04 职场文书
小学六一主持词开场白
2015/05/28 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
Django框架中模型的用法
2022/06/10 Python