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 相关文章推荐
windows系统中python使用rar命令压缩多个文件夹示例
May 06 Python
Python编程实战之Oracle数据库操作示例
Jun 21 Python
机器学习python实战之手写数字识别
Nov 01 Python
python读取LMDB中图像的方法
Jul 02 Python
使用Py2Exe for Python3创建自己的exe程序示例
Oct 31 Python
python单例模式的多种实现方法
Jul 26 Python
Python3之字节串bytes与字节数组bytearray的使用详解
Aug 27 Python
Python 实现自动获取种子磁力链接方式
Jan 16 Python
解决Django中checkbox复选框的传值问题
Mar 31 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
Jun 28 Python
Python编写单元测试代码实例
Sep 10 Python
PyCharm 配置SSH和SFTP连接远程服务器
May 11 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 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
php miniBB中文乱码问题解决方法
2008/11/25 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
PHP字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
php生成扇形比例图实例
2013/11/06 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
js 性能优化之算法和流程控制
2017/02/15 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
Python使用OpenCV进行标定
2018/05/08 Python
Python 监测文件是否更新的方法
2019/06/10 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
个人找工作自荐信格式
2013/09/21 职场文书
营销与策划专业毕业生求职信
2013/11/01 职场文书
力学专业毕业生自荐信
2013/11/17 职场文书
化学工程专业求职信
2014/08/10 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
军人离婚协议书样本
2014/10/21 职场文书
2014年信息宣传工作总结
2014/12/18 职场文书
如何在pycharm中快捷安装pip命令(如pygame)
2021/05/31 Python