#!/usr/bin/python
#coding=utf-8
#導入模塊
import xlsxwriter
#新建一個表文件
workbook = xlsxwriter.Workbook('sample.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('centor')
format_title.set_blod()
format_ave=workbook.add_format()
format_ave.set_border(1)
format_ave.set_num_format('0.00')
#插入數據
worksheet.write_row('A1',title)
worksheet.write_column('A2',buname)
worksheet.write_row('B2',data[0])
worksheet.write_row('B3',data[1])
worksheet.write_row('B4',data[2])
worksheet.write_row('B5',data[3])
worksheet.write_row('B6',data[4])
#定義圖表數據系列函數
def chart_series(cur_now):
worksheet.write_formula('I'+cur_now, \
'=AVERAGE(B'+cur_now+':H'+cur_now+')','format_ave')#計算平均值
chart.add_series({
'categories':'=Sheet1!$B$1:$H$1', #B1至H1元素作為x軸
'values':'=Sheet1!$B$'+cur_now+':H'+cur_now, #從B2-H2開始,每一行作為數據
'line':{'color':'#cccccc'}, #線條顏色
'name':'=Sheet1!$A$'+cur_now, #引用A列作為數值類型
})
for row in range(2,7):
chart_series(str(row))
chart.set_size({'width':577,'height':277})
chart.set_title({'name':u'業務流量周報報表'})
chart.set_y_axis({'name':'MB/s'})
worksheet.insert_chart('A8',chart)
workbook.close()
excel表格效果:

