1 #!/user/bin env python 2 # author:Simple-Sir 3 # create_time: 2022/7/8 11:52 4 import xlsxwriter 5 6 # 表头格式 7 title_format = { 8 'border': 1, 9 'font_name': '微软雅黑', # 字体 10 'font_size': 10, # 字体大小 11 'font_color': 'black', # 字体颜色 12 'bold': True, # 是否粗体 13 'align': 'center', # 水平居中对齐 14 'valign': 'vcenter' # 垂直居中对齐 15 } 16 17 # 数据格式 18 data_format = { 19 'border': 1, 20 'font_name': '微软雅黑', # 字体 21 'font_size': 10, # 字体大小 22 'font_color': 'black', # 字体颜色 23 'align': 'center', # 水平居中对齐 24 'valign': 'vcenter' # 垂直居中对齐 25 } 26 27 # 表头格式二,标红 28 title_format_red = { 29 'border': 1, 30 'font_name': '微软雅黑', # 字体 31 'font_size': 10, # 字体大小 32 'font_color': 'red', # 字体颜色 33 'bold': True, # 是否粗体 34 'align': 'center', # 水平居中对齐 35 'valign': 'vcenter' # 垂直居中对齐 36 } 37 38 workbook = xlsxwriter.Workbook('活动统计数据.xlsx') 39 sheet = workbook.add_worksheet('活动统计') # 添加sheet 40 41 # 设置列宽 42 sheet.set_column('A:A', 9) 43 sheet.set_column('B:B', 5) 44 sheet.set_column('C:V', 7) 45 46 # 表头 47 fields = ['统计时间', '分省', '当日UV', '当日PV', '累积UV', '累积PV', '当日UV', '当日PV', '累积UV', '累积PV', '当日UV', '当日PV', '累积UV', '累积PV', 48 '当日UV', '当日PV', '累积UV', '累积PV', '当日UV', '当日PV', '累积UV', '累积PV'] 49 50 # 添加表头 51 for fk, field in enumerate(fields): 52 sheet.write(1, fk, field,workbook.add_format(title_format)) # 添加表头,从第二行插入(后续会合并单元格),并设置单元格格式为上面定义的 title_format 53 54 # 读取数据 55 with open('test.txt', 'r', encoding='utf-8') as f: 56 lines = f.readlines() 57 for k, v in enumerate(lines): 58 lines[k] = v.replace('\n', '').split('\t') # 替换掉换行符、并转换为列表(一条数据为一个元素) 59 60 # 写入excle 61 # 从第三行开始写入内容 62 for lk, lv in enumerate(lines): 63 for k, v in enumerate(lv): 64 if type(v) == type(None): 65 sheet.write(lk + 2, k, '', workbook.add_format(data_format)) 66 else: 67 sheet.write(lk + 2, k, v, workbook.add_format(data_format)) 68 69 # 合并单元格 70 sheet.merge_range('A1:A2', '统计时间', workbook.add_format(title_format)) 71 sheet.merge_range('B1:B2', '分省', workbook.add_format(title_format)) 72 sheet.merge_range('C1:F1', '活动一', workbook.add_format(title_format)) 73 sheet.merge_range('G1:J1', '活动二', workbook.add_format(title_format)) 74 sheet.merge_range('K1:N1', '活动三', workbook.add_format(title_format_red)) 75 sheet.merge_range('O1:R1', '活动四', workbook.add_format(title_format_red)) 76 sheet.merge_range('S1:V1', '活动五', workbook.add_format(title_format_red)) 77 78 workbook.close()xlsxwriterToExcel