PythonでExcelの操作・使い方について。
この記事の内容はコチラです
- PythonでExcelに罫線・枠線を書く
- 例えば、セルを枠線で囲む
- openpyxl、Borderの使い方を知る
今回は、「openPyXl」パッケージを使ってExcelに罫線を書く方法を解説します。
Excelに罫線を書く
準備
PythonでExcel操作をするには、「openPyXl」パッケージが便利です。「openPyXl」を事前にダウンロード・インストールしておく必要があります。
参照:外部パッケージ OpenPyXLをインストールする方法
Pythonの「openPyXl」パッケージを使って、セルに罫線を書くには「styles.borders.Border」を使います。
サンプルデータ
こちらはサンプルで使用するEXCELファイルです。

例1. Excelに罫線(外枠)を書き込む
import openpyxl
from openpyxl.styles.borders import Border, Side
# ブックを取得
book = openpyxl.load_workbook('C:\\pg\\data.xlsx')
# シートを取得
sheet = book['Sheet1']
# 罫線(外枠)を設定
border = Border(top=Side(style='thin', color='000000'),
bottom=Side(style='thin', color='000000'),
left=Side(style='thin', color='000000'),
right=Side(style='thin', color='000000')
)
# セルに罫線を設定
sheet['A1'].border = border
# 保存する
book.save('C:\\pg\\data.xlsx')
Excelファイル「data.xlsx」のシート「Sheet1」のセル「A1」に罫線(外枠)を設定しました。

「openpyxl.styles.borders.Border」で罫線を設定しました。ここでは罫線を外枠にするために、上下左右の4つを設定しました。
罫線の種類
| top | 上罫線 |
| bottom | 下罫線 |
| left | 左罫線 |
| right | 右罫線 |
style
| hair | 実線(極細) |
| thin | 実線(細) |
| medium | 実線(中) |
| thick | 実線(太) |
| dashed | 破線 |
| dotted | 点線 |
| dashDot | 一点鎖線 |
| dashDotDot | 二点鎖線 |
| double | 二重線 |
| slantDashDot | 斜め斜線 |
これでExcelで罫線を設定することができました。
例2. Excel 複数セルに罫線(外枠)を書き込む(ループ使用)
import openpyxl
from openpyxl.styles.borders import Border, Side
# ブックを取得
book = openpyxl.load_workbook('C:\\pg\\data.xlsx')
# シートを取得
sheet = book['Sheet1']
# 罫線(外枠)を設定
border = Border(top=Side(style='thin', color='000000'),
bottom=Side(style='thin', color='000000'),
left=Side(style='thin', color='000000'),
right=Side(style='thin', color='000000')
)
# セルに罫線を設定
for row_num in range(2,4):
for col_num in range(1,8):
sheet.cell(row=row_num ,column=col_num).border = border
# 保存する
book.save('C:\\pg\\data.xlsx')

例1では1つのセルだけに罫線を設定しましたが、ここでは複数のセルにまたがって罫線を設定しました。行・列をループで設定すれば簡単に罫線を設定できます。
これで「styles.borders.Border」を使ってExcelセルに罫線を書くことができました。
参照:https://openpyxl.readthedocs.io/en/stable/#
以上、PythonでExcelに罫線(枠線)を書く方法でした。
● Python初心者におすすめ!
Python学習方法に関する記事です。読まないと損するかも。


コメント