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多线程编程(五):死锁的形成
Apr 05 Python
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
在Python中定义和使用抽象类的方法
Jun 30 Python
python 中random模块的常用方法总结
Jul 08 Python
Python实现螺旋矩阵的填充算法示例
Dec 28 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
如何使用Python实现斐波那契数列
Jul 02 Python
django的ORM操作 删除和编辑实现详解
Jul 24 Python
python jenkins 打包构建代码的示例代码
Nov 29 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
Jan 08 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
Mar 10 Python
Python使用OpenCV实现虚拟缩放效果
Feb 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
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
2017/01/06 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
在 Angular中 使用 Lodash 的方法
2018/02/11 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
Python字符串对象实现原理详解
2019/07/01 Python
python文件转为exe文件的方法及用法详解
2019/07/08 Python
django框架使用方法详解
2019/07/18 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
python之语音识别speech模块
2020/09/09 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
css3 按钮样式简单可扩展创建
2013/03/18 HTML / CSS
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
一套比较完整的软件测试人员面试题
2012/05/13 面试题
期末自我鉴定
2014/02/02 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
博物馆观后感
2015/06/05 职场文书
redis 存储对象的方法对比分析
2021/08/02 Redis