【Python】openpyxl を使ってエクセルのセルに罫線を引く
この記事では、ライブラリの「openpyxl」を使って、エクセルのセルに罫線を引く方法を記載します。
- Python 3.7.4
- PyCharm 2019.2
- openpyxl 2.6.2
【基本構成】
今回使用する「pyautogui」は標準ライブラリではないため、インストールが必要です。
サンプルコード
罫線を引く基本構成は下記となります。
import openpyxl as xl from openpyxl.styles.borders import Border, Side wb = xl.Workbook() ws = wb.active side = Side(style='thin', color='000000') border = Border(left=side, right=side, top=side, bottom=side) ws.cell(2, 2).border = border wb.save('./test.xlsx')
説明
<必要ライブラリのインポート>
from openpyxl.styles.borders import Border, Side
罫線を引く際には「openpyxl」の「styles.borders」にある「Border」と「 Side」を使用するためインポートしています。
「Border」は罫線を引く箇所を指定する際に、「Side」は罫線の種類を指定するために使用します。
<罫線の指定>
side = Side(style='thin', color='000000')
「Side」を使用して罫線の種類を指定しています。
また、引数「color」で罫線の色の指定もできます。
「Side」の詳細はこちらに記載します。
<罫線を引く箇所の指定>
border = Border(left=side, right=side, top=side, bottom=side)
「Border」でセルに対して罫線の引く位置と種類を指定したオブジェクトを作成しています。
下記の引数に「Side」オブジェクトを指定します。
コード | 説明 |
---|---|
top | 上罫線 |
bottom | 下罫線 |
left | 左罫線 |
right | 右罫線 |
<罫線を引く>
ws.cell(2, 2).border = border
セルに罫線を引いています。
セルの「.border」に対して、「Border」オブジェクトを代入することで罫線を引きます。
Side について
罫線の種類について
「Side」の「style」の引数に指定する値とその線の種類をまとめておきます。
引数 | 線のサンプル |
---|---|
mediumDashDotDot | |
medium | |
mediumDashed | |
dotted | |
thick | |
dashDotDot | |
mediumDashDot | |
hair | |
dashDot | |
slantDashDot | |
double | |
dashed | |
thin |
線の色について
「Side」の引数「color」についてですが、RGBの組み合わせで色を指定します。
R | G | B |
xx | yy | zz |
【参考サイト】
今回の作業にあたり、下記サイトを参考にさせて頂きました。
openpyxl.styles.borders module — openpyxl 3.0.5 documentation