对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和pygame实现简单俄罗斯方块游戏
Feb 19 Python
用Python读取几十万行文本数据
Dec 24 Python
一文了解Python并发编程的工程实现方法
May 31 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
Mar 23 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
Apr 01 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
python实现从ftp上下载文件的实例方法
Jul 19 Python
django教程如何自学
Jul 31 Python
python从PDF中提取数据的示例
Oct 30 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
Jan 21 Python
linux系统下pip升级报错的解决方法
Jan 31 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面试题附答案
2009/01/07 PHP
基于PHP静态类的原罪详解
2013/05/06 PHP
php实现httpclient类示例
2014/04/08 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
JS 实现双色表格实现代码
2009/11/24 Javascript
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
仅IE不支持setTimeout/setInterval函数的第三个以上参数
2011/05/25 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
JavaScript实现梯形乘法表的方法
2015/04/25 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
微信小程序 wxapp画布 canvas详细介绍
2016/10/31 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
layui table 参数设置方法
2018/08/14 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
Python urls.py的三种配置写法实例详解
2017/04/28 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
html5的localstorage详解
2017/05/09 HTML / CSS
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
挂职自我鉴定
2014/02/26 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
期末复习计划
2015/01/19 职场文书
交心谈心活动总结
2015/05/11 职场文书
我的中国梦主题班会
2015/08/14 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
Python中time标准库的使用教程
2022/04/13 Python