zoukankan      html  css  js  c++  java
  • 转载——python编写excel周报统计图表

    https://blog.51cto.com/wuguiyunwei/1937381

    1. 安装模块 :pip install XlsxWriter
    2. 直接直接复制以下代码 保存文件名为wuguiyunwei.py
    3. 执行:python wuguiyunwei.py

    注:可以根据业务需求自行修改所要参数

      1 #!/usr/bin/env python
      2 
      3 #coding: utf-8
      4 
      5 import xlsxwriter
      6 
      7  
      8 
      9 workbook = xlsxwriter.Workbook('wugui.xlsx') #创建一个Excel文件
     10 
     11 worksheet = workbook.add_worksheet()  #创建一个工作表对象
     12 
     13 chart = workbook.add_chart({'type':'column'}) #创建一个图表对象
     14 
     15 #定义数据表开头列表
     16 
     17 title = [u'业务名称',u'星期一',u'星期二',u'星期三',u'星期四',u'星期五',u'星期六',u'星期日',u'平均流量']
     18 
     19 buname = [u'乌龟运维官网',u'乌龟1',u'乌龟2',u'乌龟3',u'乌龟4'] #定义频道名称
     20 
     21 #定义5频道一周七天数据列表
     22 
     23 data = [
     24 
     25     [134,432,348,349,565,435,158],
     26 
     27     [176,168,94,53,68,700,91],
     28 
     29     [251,265,154,165,540,154,135],
     30 
     31     [77,76,75,74,73,73],
     32 
     33     [81,82,83,84,91,83,82],
     34 
     35 ]
     36 
     37 format=workbook.add_format() #定义format格式对象
     38 
     39 format.set_border(1) #定义format对象单元格边框加粗(1像素)的格式
     40 
     41  
     42 
     43 format_title=workbook.add_format() #定义format_title格式对象
     44 
     45 format_title.set_border(1) #定义format_title对象单元格边框加粗(1像素)的格式
     46 
     47 format_title.set_bg_color('#cccccc') #定义format_title对象单元格背景颜色为‘cccccc’的格式
     48 
     49 format_title.set_align('center') #定义format_title对象单元格剧中对齐的格式
     50 
     51 format_title.set_bold() #定义format_title对象单元格内容加粗的格式
     52 
     53  
     54 
     55 format_ave=workbook.add_format() #定义format_ave格式对象
     56 
     57 format_ave.set_border(1) #定义format_ave对象单元格边框加粗(1像素)的格式
     58 
     59 format_ave.set_num_format('0.00') #定义format_ave对象单元格数字类别显示格式
     60 
     61  
     62 
     63 #下面分别以行或列写入方式将标题,业务名称,流量数据写入起初单元格,同时引用不同格式对象
     64 
     65 worksheet.write_row('A1',title,format_title)
     66 
     67 worksheet.write_column('A2',buname,format)
     68 
     69 worksheet.write_row('B2',data[0],format)
     70 
     71 worksheet.write_row('B3',data[1],format)
     72 
     73 worksheet.write_row('B4',data[2],format)
     74 
     75 worksheet.write_row('B5',data[3],format)
     76 
     77 worksheet.write_row('B6',data[4],format)
     78 
     79  
     80 
     81 #定义图表数据系列函数
     82 
     83 def chart_series(cur_row):
     84 
     85     worksheet.write_formula('I'+cur_row,'=AVERAGE(B'+cur_row+':H'+cur_row+')',format_ave) #计算(AVERAGE函数)
     86 
     87    #频道周平均流量
     88 
     89     chart.add_series({
     90 
     91         'categories':'=Sheet1!$B$1:$H$1', #将“星期一至星期日”作为图标数据标签(X轴)
     92 
     93 'values':      '=Sheet1!$B$'+cur_row+':$H$'+cur_row, #频道一周所有数据操作 为数据区域
     94 
     95 'line':        {'color':'black'}, #线条颜色定义为black(黑色)
     96 
     97 'name':'Sheet1!$A$'+cur_row,
     98 
     99    })
    100 
    101 for row in range(2,7): #数据域以第2~6行进行图表数据系列函数调用
    102 
    103     chart_series(str(row))
    104 
    105 #chart.set_table() #设置X轴表格格式,本示例不启用
    106 
    107 #chart.set_style(30) #设置图表样式,本示例不启用
    108 
    109 chart.set_size({'width': 577,'height':287}) #设置图表大小
    110 
    111 chart.set_title({'name': u'业务流量周报报表'}) #设置图表(上方)大标题
    112 
    113 chart.set_y_axis({'name': 'MB/s'}) #设置Y轴(左侧)小图标
    114 
    115 worksheet.insert_chart('A8', chart) #在A8单元格插入图表
    116 
    117 workbook.close() #关闭Excel文档
  • 相关阅读:
    程序员版狂人日记二 .
    [骑行小记1]骑在上海
    启动/关闭xp_cmdshell
    脑力风暴之小毛驴历险记(3)低进高出的小鸡(上)
    如何查看SQL Server的实例名(转载)
    MSBuild 项目属性以及任务参考
    SQL update 语句中使用表别名&&查找占用数据库的进程
    [当算法遇上数学]元芳,你怎么能随即生成m个数,让其和等于n?(加强版)
    IIS error: Service Unavailable : HTTP Error 503. The service is unavailable
    SQL with(nolock)详解 [转]
  • 原文地址:https://www.cnblogs.com/bravesunforever/p/13191260.html
Copyright © 2011-2022 走看看