对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抓取框架 Scrapy的架构
Aug 12 Python
Python命令启动Web服务器实例详解
Feb 23 Python
Python实现读取json文件到excel表
Nov 18 Python
Python实现时钟显示效果思路详解
Apr 11 Python
python之cv2与图像的载入、显示和保存实例
Dec 05 Python
Win10下Python3.7.3安装教程图解
Jul 08 Python
pytorch中的上采样以及各种反操作,求逆操作详解
Jan 03 Python
python中count函数简单用法
Jan 05 Python
从python读取sql的实例方法
Jul 21 Python
python反编译教程之2048小游戏实例
Mar 03 Python
一劳永逸彻底解决pip install慢的办法
May 24 Python
Python import模块的缓存问题解决方案
Jun 02 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实现的简单压缩英文字符串的代码
2008/04/24 PHP
linux php mysql数据库备份实现代码
2009/03/10 PHP
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
2016/06/01 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
webpack 模块热替换原理
2018/04/09 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
python查找目录下指定扩展名的文件实例
2015/04/01 Python
Python常用小技巧总结
2015/06/01 Python
Python人脸识别初探
2017/12/21 Python
Python单元测试简单示例
2018/07/03 Python
Django forms组件的使用教程
2018/10/08 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
Python datetime 如何处理时区信息
2020/09/02 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
求职信模版
2013/11/30 职场文书
韩国商务邀请函
2014/01/14 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
个人租房协议书样本
2014/10/01 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL
浅谈Python基础之列表那些事儿
2021/05/11 Python
Windows 11要来了?微软文档揭示Win11太阳谷 / Win10有两个不同版本
2021/11/21 数码科技