「亲测可用」如何用python脚本生成excel表格?
今天在做表格识别的任务时,需要在excel中重构出表格,因此需要实现Python代码生成excel的功能,可以用python的xlsxwriter模块来实现生成excel表格、插入数据、插入图标等表格操作。
python生成excel效果图
实现上图的python源代码如下:
#!/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('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)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()
赞 (0)