https://blog.51cto.com/wuguiyunwei/1937381
-
安装模块 :pip install XlsxWriter
-
直接直接复制以下代码 保存文件名为wuguiyunwei.py
-
执行: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文档