对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程序员开发中常犯的10个错误
Jul 07 Python
Python的批量远程管理和部署工具Fabric用法实例
Jan 23 Python
尝试用最短的Python代码来实现服务器和代理服务器
Jun 23 Python
Python黑帽编程 3.4 跨越VLAN详解
Sep 28 Python
Python 模块EasyGui详细介绍
Feb 19 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
Jul 22 Python
Python 矩阵转置的几种方法小结
Dec 02 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
python小白学习包管理器pip安装
Jun 09 Python
为什么说python更适合树莓派编程
Jul 20 Python
python 实现一个简单的线性回归案例
Dec 17 Python
Python编写车票订购系统 Python实现快递收费系统
Aug 14 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
CI(CodeIgniter)框架介绍
2014/06/09 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
Linux下编译redis和phpredis的方法
2016/04/07 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
基于Laravel-admin 后台的自定义页面用法详解
2019/09/30 PHP
js数组操作学习总结
2013/11/04 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
JS作用域深度解析
2016/12/29 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
基于Vue实现微信小程序的图文编辑器
2018/07/25 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
Python3 socket同步通信简单示例
2017/06/07 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
解决python运行效率不高的问题
2020/07/20 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
上海方立数码笔试题
2013/10/18 面试题
介绍一下Linux文件的记录形式
2013/09/29 面试题
Java语言的优势
2015/01/10 面试题
vue实现倒计时功能
2021/03/24 Vue.js
自考毕业自我鉴定范文
2013/10/27 职场文书
求职信模板
2014/05/23 职场文书
楚门的世界观后感
2015/06/03 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android
十大最强飞行系宝可梦,BUG燕上榜,第二是飞行系王者
2022/03/18 日漫