python xlsxwriter创建excel图表的方法


Posted in Python onJune 11, 2018

本文实例为大家分享了python xlsxwriter创建excel图表的具体代码,供大家参考,具体内容如

#coding=utf-8 
import xlsxwriter 
from xlsxwriter.workbook import Workbook 
from xlrd.sheet import Sheet 
 
def demo1(): 
 import xlsxwriter 
 
 
 # 创建excel文件 
 workbook = xlsxwriter.Workbook('demo.xlsx') 
#  添加worksheet,也可以指定名字 
 worksheet = workbook.add_worksheet() 
 worksheet = workbook.add_worksheet('Test') 
  
 #设置第一列的宽度 
 worksheet.set_column('A:A', len('hello ')+1) 
  
 #添加一个加粗格式方便后面使用 
 bold = workbook.add_format({'bold': True}) 
  
 #在A1单元格写入纯文本 
 worksheet.write('A1', 'Hello') 
  
 #在A2单元格写入带格式的文本 
 worksheet.write('A2', 'World', bold) 
  
 #指定行列写入数字,下标从0开始 
 worksheet.write(2, 0, 123) 
 worksheet.write(3, 0, 123.456) 
  
 #在B5单元格插入图片 
 worksheet.insert_image('B5', 'python-logo.png') 
  
  
 workbook.close() 
  
  
def charts(): 
 workbook = xlsxwriter.Workbook('chart_column.xlsx') 
 worksheet = workbook.add_worksheet() 
 bold = workbook.add_format({'bold': 1}) 
  
 # 这是个数据table的列 
 headings = ['Number', 'Batch 1', 'Batch 2'] 
 data = [ 
  [2, 3, 4, 5, 6, 7], 
  [10, 40, 50, 20, 10, 50], 
  [30, 60, 70, 50, 40, 30], 
 ] 
 #写入一行 
 worksheet.write_row('A1', headings, bold) 
 #写入一列 
 worksheet.write_column('A2', data[0]) 
 worksheet.write_column('B2', data[1]) 
 worksheet.write_column('C2', data[2]) 
  
  
  
 ############################################ 
 #创建一个图表,类型是column 
 chart1 = workbook.add_chart({'type': 'column'}) 
  
 # 配置series,这个和前面worksheet是有关系的。 
#  指定图表的数据范围 
 chart1.add_series({ 
  'name':  '=Sheet1!$B$1', 
  'categories': '=Sheet1!$A$2:$A$7', 
  'values':  '=Sheet1!$B$2:$B$7', 
 }) 
 chart1.add_series({ 
  'name':  "=Sheet1!$C$1", 
  'categories': '=Sheet1!$A$2:$A$7', 
  'values':  '=Sheet1!$C$2:$C$7', 
 }) 
# 配置series的另一种方法  
#  #  [sheetname, first_row, first_col, last_row, last_col] 
#  chart1.add_series({ 
#   'name':   ['Sheet1',0,1], 
#   'categories': ['Sheet1',1,0,6,0], 
#   'values':  ['Sheet1',1,1,6,1], 
#      }) 
#   
# 
# 
#  chart1.add_series({ 
#   'name':  ['Sheet1', 0, 2], 
#   'categories': ['Sheet1', 1, 0, 6, 0], 
#   'values':  ['Sheet1', 1, 2, 6, 2], 
#  }) 
  
 
#  添加图表标题和标签 
 chart1.set_title ({'name': 'Results of sample analysis'}) 
 chart1.set_x_axis({'name': 'Test number'}) 
 chart1.set_y_axis({'name': 'Sample length (mm)'}) 
  
 # 设置图表风格 
 chart1.set_style(11)  
  
 # 在D2单元格插入图表(带偏移) 
 worksheet.insert_chart('D2', chart1, {'x_offset': 25, 'y_offset': 10}) 
  
 ####################################################################### 
 # 
 # 创建一个叠图子类型 
 chart2 = workbook.add_chart({'type': 'column', 'subtype': 'stacked'}) 
  
 # Configure the first series. 
 chart2.add_series({ 
  'name':  '=Sheet1!$B$1', 
  'categories': '=Sheet1!$A$2:$A$7', 
  'values':  '=Sheet1!$B$2:$B$7', 
 }) 
  
 # Configure second series. 
 chart2.add_series({ 
  'name':  '=Sheet1!$C$1', 
  'categories': '=Sheet1!$A$2:$A$7', 
  'values':  '=Sheet1!$C$2:$C$7', 
 }) 
  
 # Add a chart title and some axis labels. 
 chart2.set_title ({'name': 'Stacked Chart'}) 
 chart2.set_x_axis({'name': 'Test number'}) 
 chart2.set_y_axis({'name': 'Sample length (mm)'}) 
  
 # Set an Excel chart style. 
 chart2.set_style(12) 
  
 # Insert the chart into the worksheet (with an offset). 
 worksheet.insert_chart('D18', chart2, {'x_offset': 25, 'y_offset': 10}) 
  
 ####################################################################### 
 # 
 # Create a percentage stacked chart sub-type. 
 # 
 chart3 = workbook.add_chart({'type': 'column', 'subtype': 'percent_stacked'}) 
  
 # Configure the first series. 
 chart3.add_series({ 
  'name':  '=Sheet1!$B$1', 
  'categories': '=Sheet1!$A$2:$A$7', 
  'values':  '=Sheet1!$B$2:$B$7', 
 }) 
  
 # Configure second series. 
 chart3.add_series({ 
  'name':  '=Sheet1!$C$1', 
  'categories': '=Sheet1!$A$2:$A$7', 
  'values':  '=Sheet1!$C$2:$C$7', 
 }) 
  
 # Add a chart title and some axis labels. 
 chart3.set_title ({'name': 'Percent Stacked Chart'}) 
 chart3.set_x_axis({'name': 'Test number'}) 
 chart3.set_y_axis({'name': 'Sample length (mm)'}) 
  
 # Set an Excel chart style. 
 chart3.set_style(13) 
  
 # Insert the chart into the worksheet (with an offset). 
 worksheet.insert_chart('D34', chart3, {'x_offset': 25, 'y_offset': 10}) 
 #生成圆饼图 
 chart4 = workbook.add_chart({'type':'pie'}) 
 #定义数据 
 data = [ 
   ['Pass','Fail','Warn','NT'], 
   [333,11,12,22], 
   ] 
 #写入数据 
 worksheet.write_row('A51',data[0],bold) 
 worksheet.write_row('A52',data[1]) 
  
 chart4.add_series({   
  'name':   '接口测试报表图', 
  'categories': '=Sheet1!$A$51:$D$51', 
  'values':  '=Sheet1!$A$52:$D$52', 
  'points':[ 
   {'fill':{'color':'#00CD00'}}, 
   {'fill':{'color':'red'}}, 
   {'fill':{'color':'yellow'}}, 
   {'fill':{'color':'gray'}}, 
     ], 
 }) 
 # Add a chart title and some axis labels. 
 chart4.set_title ({'name': '接口测试统计'}) 
 chart4.set_style(3)  
#  chart3.set_y_axis({'name': 'Sample length (mm)'}) 
  
 worksheet.insert_chart('E52', chart4, {'x_offset': 25, 'y_offset': 10}) 
 workbook.close() 
if __name__ == '__main__': 
#  demo1() 
 charts() 
 print('finished...') 
 pass

效果如下

python xlsxwriter创建excel图表的方法

参考文档:

https://pypi.python.org/pypi/XlsxWriter

python使用xlsxwriter打造excel周报日周的统计图表

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python封装对象实现时间效果
Apr 23 Python
跟老齐学Python之一个免费的实验室
Sep 14 Python
python利用装饰器进行运算的实例分析
Aug 04 Python
Python中动态创建类实例的方法
Mar 24 Python
浅谈用Python实现一个大数据搜索引擎
Nov 28 Python
python读取一个目录下所有txt里面的内容方法
Jun 23 Python
django如何实现视图重定向
Jul 24 Python
基于TensorBoard中graph模块图结构分析
Feb 15 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
Feb 28 Python
如何使用Cython对python代码进行加密
Jul 08 Python
Pycharm快捷键配置详细整理
Oct 13 Python
Keras多线程机制与flask多线程冲突的解决方案
May 28 Python
python操作excel的包(openpyxl、xlsxwriter)
Jun 11 #Python
django 使用 request 获取浏览器发送的参数示例代码
Jun 11 #Python
python操作excel的方法(xlsxwriter包的使用)
Jun 11 #Python
Python 爬取携程所有机票的实例代码
Jun 11 #Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 #Python
Anaconda 离线安装 python 包的操作方法
Jun 11 #Python
使用anaconda的pip安装第三方python包的操作步骤
Jun 11 #Python
You might like
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
Laravel框架定时任务2种实现方式示例
2018/12/08 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
深入理解Javascript闭包 新手版
2010/12/28 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
分分钟玩转Vue.js组件
2016/10/25 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
Python中bisect的用法
2014/09/23 Python
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
Python常用知识点汇总
2016/05/08 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
python中对_init_的理解及实例解析
2019/10/11 Python
python interpolate插值实例
2020/07/06 Python
Python实现扫码工具的示例代码
2020/10/09 Python
详解pandas赋值失败问题解决
2020/11/29 Python
高级方案规划工程师岗位职责
2013/11/29 职场文书
影视制作岗位职责
2013/12/04 职场文书
应聘自荐信
2013/12/14 职场文书
《第一朵杏花》教学反思
2014/04/16 职场文书
反邪教警示教育方案
2014/05/13 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
音乐之声观后感
2015/06/04 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
Python中threading库实现线程锁与释放锁
2021/05/17 Python
Java基础-封装和继承
2021/07/02 Java/Android
在 Python 中利用 Pool 进行多线程
2022/04/24 Python
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python