#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,179,198,195],
[75,77,78,78,74,70,79],
[88,85,87,90,93,88,84],
]
format=workbook.add_format()
worksheet.write_row('A1',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+')') #計算每行平均值(例如B2:H2)
chart.add_series({ #繪制某一業務周一到周日的流量值
'categories':'=Sheet1!$B$1:$H$1', #圖表下面的星期一,星期二
'values': '=Sheet1!$B$'+cur_row+':$H$'+cur_row, #根據每行的內容填充值(例如cur_row是1時,畫出星期一對應的業務官網對應值)
'line': {'color':'black'},
'name': '=Sheet1!$A$'+cur_row, #畫出的值的名稱
})
for row in range(2,7):
print row
chart_series(str(row))
chart.set_size({'width':577,'height':287}) #圖表大小
chart.set_title({'name':u'業務流量周報圖表'}) #圖表標題
chart.set_y_axis({'name':'Mb/s'}) #y軸顯示的內容
worksheet.insert_chart('A8',chart) #圖表的開始位置
workbook.close()

