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使用Flask框架获取用户IP地址的方法
Mar 21 Python
Python中title()方法的使用简介
May 20 Python
详解Python字符串对象的实现
Dec 24 Python
Django实现的自定义访问日志模块示例
Jun 23 Python
Python3调用微信企业号API发送文本消息代码示例
Nov 10 Python
python对视频画框标记后保存的方法
Dec 07 Python
Python使用pymysql模块操作mysql增删改查实例分析
Dec 19 Python
基于TensorBoard中graph模块图结构分析
Feb 15 Python
Python 去除字符串中指定字符串
Mar 05 Python
利用python生成照片墙的示例代码
Apr 09 Python
浅谈django框架集成swagger以及自定义参数问题
Jul 07 Python
Python使用Pygame绘制时钟
Nov 29 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/01 无线电
改造一台复古桌面收音机
2021/03/02 无线电
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
输出控制类
2006/10/09 PHP
php图片加中文水印实现代码分享
2012/10/31 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
Javascript实现动态菜单添加的实例代码
2013/07/05 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
2016/12/19 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
Python实现豆瓣图片下载的方法
2015/05/25 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
Python 处理图片像素点的实例
2019/01/08 Python
python django中8000端口被占用的解决
2019/12/17 Python
Python如何读写二进制数组数据
2020/08/01 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
实验室标语
2014/06/21 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
领导班子对照检查材料
2014/09/22 职场文书
2014购房个人委托书范本
2014/10/12 职场文书
MySQL 角色(role)功能介绍
2021/04/24 MySQL
vue 给数组添加新对象并赋值
2022/04/20 Vue.js
css样式important规则的正确使用方式
2022/06/10 HTML / CSS