罫線、センタリングなどの装飾

投稿者: | 2022-06-23
wb = openpyxl.load_workbook('sample.xlsx')
ws1 = wb['Sheet']

# 列見出し用:センタリングと背景色
header_alignment = Alignment(horizontal='center')
header_fill = PatternFill(patternType='solid', fgColor='d3d3d3')

# 罫線
side = Side(style='thin', color='000000')
border = Border(top=side, bottom=side, left=side, right=side)

# 列の幅を変更
for col in list('ABCDEFGH'):
    if col == 'A' or col == 'B':
        ws1.column_dimensions[col].width = 20
    else:
        ws1.column_dimensions[col].width = 30

# ここではrangeで範囲設定
for row_num in range(10,20):
    for col_num in range(3, 8):
        if row_num == 10:
            # 見出し装飾
            ws1.cell(row=row_num, column=col_num).fill = header_fill
            ws1.cell(row=row_num, column=col_num).alignment = header_alignment
        # 罫線引く
        ws1.cell(row=row_num, column=col_num).border = border  
        
# 数式を入力
ws1['A4'] = '=SUM(A1:A3)'
        
wb.save('sample.xlsx')