Posted in Python onMarch 11, 2019
本文实例讲述了Python实现定制自动化业务流量报表周报功能。分享给大家供大家参考,具体如下:
一 点睛
本次实践通过定制网站5个频道的流量报表周报,通过XlsxWriter 模块将流量数据写入Excel文档,同时自动计算各频道周平均流量,再生成数据图表。具体是通过workbook.add_chart({'type':'column'})
方 法指定图表类型为柱形,使用write_row
、write_column
方法分别以行、 列方式写入数据,使用add_format()
方法定制表头、表体的显示风格,使用add_series()
方法将数据添加到图表,同时使用 chart.set_size、set_title、set_y_axis设置图表的大小及标题属性,最后通 过insert_chart
方法将图表插入工作表中。
二 代码
#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], [89,88,95,93,98,100,99], [201,200,198,175,170,198,195], [75,77,78,78,74,70,79], [88,85,87,90,93,88,84], ] format=workbook.add_format() format.set_border(1) format_title=workbook.add_format() format_title.set_border(1) 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', 'values': '=Sheet1!$B$'+cur_row+':$H$'+cur_row, 'line': {'color': 'black'}, 'name': '=Sheet1!$A$'+cur_row, }) for row in range(2, 7): chart_series(str(row)) #chart.set_table() #chart.set_style(30) chart.set_size({'width': 577, 'height': 287}) chart.set_title ({'name': u'业务流量周报图表'}) chart.set_y_axis({'name': 'Mb/s'}) worksheet.insert_chart('A8', chart) workbook.close()
三 显示结果
希望本文所述对大家Python程序设计有所帮助。
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
- Author -
cakincqm声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@