wb = Workbook()
ws = wb.create_sheet('月度排名彙總', 0)
# 合併單元格
ws.merge_cells('b2:b3')
ws.merge_cells('c2:c3')
ws.merge_cells('d2:d3')
ws.merge_cells('e2:g2')
ws.merge_cells('h2:j2')
# 設置單元格文本內容
ws['b2'].value = '負責人'
ws['c2'].value = '部門/小組'
ws['d2'].value = '負責產品總量'
ws['e2'].value = '與初始排名比較'
ws['h2'].value = '與月初排名比較'
ws['e3'].value = ws['h3'].value = '排名提高'
ws['f3'].value = ws['i3'].value = '排名不變'
ws['g3'].value = ws['j3'].value = '排名下滑'
# 建立單元格樣式對象
headerCellStyle = NamedStyle(name = 'headerCellStyle')
headerCellStyle.alignment = Alignment(horizontal = 'center', vertical = 'center') # 水平垂直居中
border = Side(border_style = 'thin', color = '000000') # 線框樣式
headerCellStyle.border = Border(left = border, top = border, right = border, bottom = border) # 設置單元格邊框樣式
# 設置表格樣式
for row in ws['b2:j30']:
for cell in row:
cell.style = headerCellStyle
# 數據寫入
for index, item in enumerate(data, 4):
ws.cell(row = index, column = 2, value = item.get('name'))
ws.cell(row = index, column = 3, value = item.get('group_name'))
ws.cell(row = index, column = 4, value = item.get('total'))
ws.cell(row = index, column = 5, value = item.get('initial').get('up'))
ws.cell(row = index, column = 6, value = item.get('initial').get('normal'))
ws.cell(row = index, column = 7, value = item.get('initial').get('down'))
ws.cell(row = index, column = 8, value = item.get('month').get('up'))
ws.cell(row = index, column = 9, value = item.get('month').get('normal'))
ws.cell(row = index, column = 10, value = item.get('month').get('down'))
wb.save('rank.xlsx')
效果
