PythonでExcel編集アプリケーションの作成~その3 Excelの処理~

PythonでExcel編集アプリケーションの作成~その3 Excelの処理~ python

Excelの読み込み

今回はまず、出力したExcelファイルを読み込みます。

book = load_workbook(output)
sheet = book.active

列幅の調整

次に読み込んだシートの列幅を調整します。

# 幅の設定
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

それぞれの列ごとに幅を指定します。

セルの結合と行幅の調整

ここでは、同じ人の固定費、合計のタブを結合し、結合した数に応じて行幅を指定します。

その後、幅に合わせて文字の大きさも調節します。

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を使用しています。

文字位置の調整

ここでは列ごとに文字位置を指定します。

# 文字の位置
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')

枠をつける

では最後に枠を付けます

# 枠
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は完成です!

# 保存
book.save(output)
タイトルとURLをコピーしました