对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 将字符串转换成字典dict
Mar 24 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
Apr 28 Python
python pygame模块编写飞机大战
Nov 20 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 Python
详解Python中的正斜杠与反斜杠
Aug 09 Python
python递归下载文件夹下所有文件
Aug 31 Python
python tkinter组件使用详解
Sep 16 Python
python提取xml里面的链接源码详解
Oct 15 Python
python 实现批量图片识别并翻译
Nov 02 Python
Python常用扩展插件使用教程解析
Nov 02 Python
python tqdm库的使用
Nov 30 Python
python UDF 实现对csv批量md5加密操作
Jan 01 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文件的实现方法
2007/03/19 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
javascript中的new使用
2010/03/20 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
2013/12/11 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
使用javascript做在线算法编程
2018/05/25 Javascript
Vue面试题及Vue知识点整理
2018/10/07 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
使用eslint和githooks统一前端风格的技巧
2020/07/29 Javascript
[03:30]完美盛典趣味短片 CSGO2019年度名场面
2019/12/07 DOTA
Python的print用法示例
2014/02/11 Python
Python实现合并两个有序链表的方法示例
2019/01/31 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
.NET程序员的几道面试题
2012/06/01 面试题
记者岗位职责
2014/01/06 职场文书
大学毕业生自荐书怎么写?
2014/01/06 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
会计专业自荐信
2014/06/03 职场文书
学生检讨书怎么写
2014/10/09 职场文书
Redis性能监控的实现
2021/07/09 Redis
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技