python openpyxlを使ってEXCELの枠線を作成する

python openpyxlを使ってEXCELの枠線を作成する

pythonで、ライブラリopenpyxlのborderを使用して、EXCELの枠線を作成するサンプルコードを記述してます。pythonのバージョンは3.8.5を使用してます。

環境

  • OS windows10 pro 64bit
  • python 3.8.5

openpyxl使い方

openpyxlを使用すると、EXCELの操作を行うことが可能です。

まずはpipでインストールします。

pip install openpyxl

<出力結果>
Successfully installed et-xmlfile-1.0.1 jdcal-1.4.1 openpyxl-3.0.5

以下は、openpyxlのstyles.borderを使用して、EXCELのB1セルに枠線を作成サンプルコードとなります。

import openpyxl
from openpyxl.styles import Border, Side

wb = openpyxl.Workbook()
ws = wb.active

# シート名を設定
ws.title = "sheet1"

# 枠線の設定
border = Border(
    left=Side(
        border_style="thin",
        color="3db70f"
    ),
    right=Side(
        border_style="thin",
        color="3db70f"
    ),
    top=Side(
        border_style="thin",
        color="3db70f"
    ),
    bottom=Side(
        border_style="thin",
        color="3db70f"

    )
)
ws["B2"].border  = border
ws["B2"] = "mebee"

# 任意の名称で保存
wb.save('test.xlsx')

実行結果

border_styleには、thinの他にも以下が設定可能となってます。

thin – 実線(細)
midium – 実線(中)
thick – 実線(太)
dotted – 点線
dashed – 破線
double – 二重線
hair – 細かい点線
mediumDashed – 中太破線
slantDashDot – 斜め破線
dashDot – 一点鎖線
dashDotDot – 二点鎖線

また、複数のセルに一括で枠線を付ける場合は、以下のコードとなります。

import openpyxl
from openpyxl.styles import Border, Side

wb = openpyxl.Workbook()
ws = wb.active

# シート名を設定
ws.title = "sheet1"

# 枠線の設定
border = Border(
    left=Side(
        border_style="thin",
        color="3db70f"
    ),
    right=Side(
        border_style="thin",
        color="3db70f"
    ),
    top=Side(
        border_style="thin",
        color="3db70f"
    ),
    bottom=Side(
        border_style="thin",
        color="3db70f"

    )
)

# A1 ~ E5までに枠線を付ける
for rows in ws['A1':'E5']:
    for cell in rows:
        cell.border = border

# 任意の名称で保存
wb.save('test.xlsx')