对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实现二维有序数组查找的方法
Apr 27 Python
python多进程和多线程究竟谁更快(详解)
May 29 Python
python基于ID3思想的决策树
Jan 03 Python
基于python实现学生管理系统
Oct 17 Python
pytorch 共享参数的示例
Aug 17 Python
在pandas中遍历DataFrame行的实现方法
Oct 23 Python
python装饰器相当于函数的调用方式
Dec 27 Python
Python %r和%s区别代码实例解析
Apr 03 Python
python小程序之4名牌手洗牌发牌问题解析
May 15 Python
简单了解Django项目应用创建过程
Jul 06 Python
浅析Python模块之间的相互引用问题
Feb 26 Python
python3.7.2 tkinter entry框限定输入数字的操作
May 22 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 session会话的安全性分析
2011/09/08 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
PHP实现的简单缓存类
2015/07/29 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
Javascript & DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
JavaScript 三种创建对象的方法
2009/10/16 Javascript
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
javascript中全局对象的isNaN()方法使用介绍
2013/12/19 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
Nodejs如何复制文件
2016/03/09 NodeJs
微信和qq时间格式模板实例详解
2016/10/21 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
Vue实现购物车基本功能
2020/11/08 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
python使用socket向客户端发送数据的方法
2015/04/29 Python
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
python使用smtplib模块发送邮件
2020/12/17 Python
加拿大最大的书店:Indigo
2017/01/01 全球购物
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
公司活动方案范文
2014/03/06 职场文书
终止劳动合同协议书
2014/10/05 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫