Excelの読み込み
今回はまず、出力したExcelファイルを読み込みます。
1 2 |
book = load_workbook(output) sheet = book.active |
列幅の調整
次に読み込んだシートの列幅を調整します。
1 2 3 4 5 6 7 |
# 幅の設定 sheet.column_dimensions['A'].width = 4.5 sheet.column_dimensions['B'].width = 7.5 sheet.column_dimensions['C'].width = 5 sheet.column_dimensions['D'].width = 14.3 sheet.column_dimensions['E'].width = 7.7 sheet.column_dimensions['F'].width = 8.6 |
それぞれの列ごとに幅を指定します。
セルの結合と行幅の調整
ここでは、同じ人の固定費、合計のタブを結合し、結合した数に応じて行幅を指定します。
その後、幅に合わせて文字の大きさも調節します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
for i, j in list1: #結合 sheet.merge_cells(f'B{i+2}:B{j+2}') sheet.merge_cells(f'F{i+2}:F{j+2}') #高さ if 5 > j-i+1 > 2: for p in range(i+2, j+3): sheet.row_dimensions[p].height = 36/(j-i+1) if j-i+1 == 4: sheet.cell(row = p, column = 1).font = Font(size=8) sheet.cell(row = p, column = 3).font = Font(size=8) sheet.cell(row = p, column = 4).font = Font(size=8) sheet.cell(row = p, column = 5).font = Font(size=8) elif 5 <= j-i+1: for p in range(i+2, j+3): sheet.row_dimensions[p].height = 36/5 sheet.cell(row = p, column = 1).font = Font(size=8) sheet.cell(row = p, column = 3).font = Font(size=6) sheet.cell(row = p, column = 4).font = Font(size=6) sheet.cell(row = p, column = 5).font = Font(size=6) |
ここではその2で作ったlist1を使用しています。
文字位置の調整
ここでは列ごとに文字位置を指定します。
1 2 3 4 5 6 7 8 9 |
# 文字の位置 for col in sheet['B']: col.alignment = Alignment(horizontal='right', vertical = 'center') for col in sheet['D']: col.alignment = Alignment(vertical = 'center') for col in sheet['E']: col.alignment = Alignment(horizontal='right') for col in sheet['F']: col.alignment = Alignment(horizontal='right', vertical = 'center') |
枠をつける
では最後に枠を付けます
1 2 3 4 5 6 |
# 枠 side = Side(style='thin', color='000000') border = Border(top=side, bottom=side, left=side, right=side) for row in sheet: for cell in row: sheet[cell.coordinate].border = border |
幅や色の指定もできます。
保存して完成
最後にファイルを保存してPythonは完成です!
1 2 |
# 保存 book.save(output) |