プログラミング勉強の備忘録

主にpythonやスマホアプリを作るためのプログラミングで勉強した内容を忘れないように記載していきます。

【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 f:id:chappy88:20200921165305p:plain
medium f:id:chappy88:20200921165358p:plain
mediumDashed f:id:chappy88:20200921170510p:plain
dotted f:id:chappy88:20200921165550p:plain
thick f:id:chappy88:20200921170325p:plain
dashDotDot f:id:chappy88:20200921165745p:plain
mediumDashDot f:id:chappy88:20200921165814p:plain
hair f:id:chappy88:20200921165855p:plain
dashDot f:id:chappy88:20200921165935p:plain
slantDashDot f:id:chappy88:20200921170102p:plain
double f:id:chappy88:20200921170140p:plain
dashed f:id:chappy88:20200921170218p:plain
thin f:id:chappy88:20200921170247p:plain
線の色について

「Side」の引数「color」についてですが、RGBの組み合わせで色を指定します。

R G B
xx yy zz

【参考サイト】

今回の作業にあたり、下記サイトを参考にさせて頂きました。
openpyxl.styles.borders module — openpyxl 3.0.5 documentation