对python生成业务报表的实例详解


Posted in Python onFebruary 03, 2019

本文介绍一个用python结合xlsxwriter自动生成业务报表的程序。这里的业务数据采用的是指定的值,真实情况下需要其他程序来接入数据。

# -*- coding: utf-8 -*-

import xlsxwriter

workbook = xlsxwriter.Workbook('chart.xlsx')
worksheet = workbook.add_worksheet()

# 指定类型为柱状图
chart = workbook.add_chart({'type': 'column'})

title = [u'业务名称',u'星期一',u'星期二',u'星期三',u'星期四',u'星期五',u'星期六',u'星期日',u'平均流量']
buname= [u'官网',u'直播',u'购物',u'视频',u'下载']

data = [
  [150,152,158,149,155,145,148],
  [189,188,195,193,198,1100,199],
  [201,200,198,175,170,198,195],
  [75,77,78,78,74,70,79],
  [188,85,87,190,93,188,184],
]

# 定义format格式对象
format=workbook.add_format()
# 定义format对象单元格边框加粗1像素
format.set_border(1)

format_title=workbook.add_format()
format_title.set_border(1)
# format_title对象单元格背景色为#cccccc
format_title.set_bg_color('#cccccc')
# 居中格式
format_title.set_align('center')
format_title.set_bold()

format_ave=workbook.add_format()
format_ave.set_border(1)
# 以小数形式显示
format_ave.set_num_format('0.00')

# 以行或列的方式写入数据,同时引用格式
worksheet.write_row('A1',title,format_title)
worksheet.write_column('A2', buname,format)
worksheet.write_row('B2', data[0],format)
worksheet.write_row('B3', data[1],format)
worksheet.write_row('B4', data[2],format)
worksheet.write_row('B5', data[3],format)
worksheet.write_row('B6', data[4],format)

# 定义图表数据系列函数
def chart_series(cur_row):
  worksheet.write_formula('I'+cur_row, \
   '=AVERAGE(B'+cur_row+':H'+cur_row+')',format_ave) # 计算平均值
  chart.add_series({
    'categories': '=Sheet1!$B$1:$H$1', # 将周一到周日作为图标x轴
    'values':   '=Sheet1!$B$'+cur_row+':$H$'+cur_row, # 一周所有数据作为数据区域
    'line':    {'color': 'black'}, # 线条颜色定义为黑色
    'name': '=Sheet1!$A$'+cur_row, # 引用名称为图例
  })

for row in range(2, 7): # 数据以2-6行进行图表数据系列函数调用
  chart_series(str(row))

chart.set_table() # 设置x轴格式
chart.set_style(30) # 设置图表样式

# 设置图表大小
chart.set_size({'width': 577, 'height': 287})
# 设置图表上方标题
chart.set_title ({'name': u'业务流量周报图表'})
# 设置y轴标题
chart.set_y_axis({'name': 'Mb/s'})

# 在A8插入单元格图表
worksheet.insert_chart('A8', chart)
workbook.close()

显示结果如下:

对python生成业务报表的实例详解

以上这篇对python生成业务报表的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用py2exe打包程序介绍
Nov 20 Python
跟老齐学Python之使用Python查询更新数据库
Nov 25 Python
python中管道用法入门实例
Jun 04 Python
详解Tensorflow数据读取有三种方式(next_batch)
Feb 01 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
对django中foreignkey的简单使用详解
Jul 28 Python
关于阿里云oss获取sts凭证 app直传 python的实例
Aug 20 Python
python3 tkinter实现添加图片和文本
Nov 26 Python
python使用rsa非对称加密过程解析
Dec 28 Python
python图形开发GUI库pyqt5的基本使用方法详解
Feb 14 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
Apr 22 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 Python
使用Python快速制作可视化报表的方法
Feb 03 #Python
python生成每日报表数据(Excel)并邮件发送的实例
Feb 03 #Python
Python告诉你木马程序的键盘记录原理
Feb 02 #Python
Python实现DDos攻击实例详解
Feb 02 #Python
Python实现SQL注入检测插件实例代码
Feb 02 #Python
Django uwsgi Nginx 的生产环境部署详解
Feb 02 #Python
python实现一个简单的udp通信的示例代码
Feb 01 #Python
You might like
PHP实现时间轴函数代码
2011/10/08 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
基于Vue实现电商SKU组合算法问题
2019/05/29 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
jQuery表单校验插件validator使用方法详解
2020/02/18 jQuery
Swiper实现导航栏滚动效果
2020/10/16 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
Python NumPy库安装使用笔记
2015/05/18 Python
python获取目录下所有文件的方法
2015/06/01 Python
python数据封装json格式数据
2018/03/04 Python
python支持多线程的爬虫实例
2019/12/21 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
用python写爬虫简单吗
2020/07/28 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
2020/04/27 HTML / CSS
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
车间主管岗位职责
2013/11/14 职场文书
2014年征兵标语
2014/06/20 职场文书
保卫工作个人总结
2015/03/03 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
秋季运动会加油词
2015/07/18 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js