OpenPyXL Pythonでエクセル操作 – 罫線(セルの枠線)設定

OpenPyXL

OpenPyXLを使って、罫線(セルの枠線)の変更取得を行います。

import openpyxl

# ワークブック新規作成
wb = openpyxl.Workbook()

# アクティブシートの取得
sh = wb.active

# 線の設定 - 線の太さの設定と、色は000000(黒)
side_top    = openpyxl.styles.Side(style='thin', color='000000')
side_bottom = openpyxl.styles.Side(style='thick', color='000000')
side_left   = openpyxl.styles.Side(style='dotted', color='000000')
side_right  = openpyxl.styles.Side(style='double', color='000000')

# 罫線の設定 - 上、下、左、右の罫線を設定
border = openpyxl.styles.Border(top=side_top, bottom=side_bottom, left=side_left, right=side_right)

# 2行 2列目のセル情報を取得
cell = sh.cell(row=2,column=2)

# 2行 2列目のセルの罫線を設定
cell.border = border

# 罫線の情報を取得する
keisen_top = cell.border.right.style
print(keisen_top)

# ワークブック保存
wb.save('file.xlsx')

# ワークブックを閉じる
wb.close()

プログラムのコードを最初から見ていきます。

import openpyxl

openpyxlをインポートします。これをしないとopenpyxlのモジュールが使えません

# ワークブック新規作成
wb = openpyxl.Workbook()

openpyxlモジュールの、Workbook()関数を使い、新規のエクセルファイルを作成します。

新規のエクセルファイル作成と同時にシート名が”Sheet”が自動で作成されます。

# アクティブシートを取得
sh = wb.active

アクティブのシートを取得します。このエクセルファイルには”Sheet”のみしか入っていないため、このシートのオブジェクトが入ります。

# 線の設定 - 線の太さの設定と、色は000000(黒)
side_top    = openpyxl.styles.Side(style='thin', color='000000')
side_bottom = openpyxl.styles.Side(style='thick', color='000000')
side_left   = openpyxl.styles.Side(style='dotted', color='000000')
side_right  = openpyxl.styles.Side(style='double', color='000000')

まずは、設定する罫線を定義します。この操作では、エクセルのセルの罫線を変更している訳ではありません。あくまでも、どういう罫線にするかを定義(設定)しているだけです。

side_topはセルの上、side_rightは右、side_bottomは下、side_leftは左の辺で使う事とします。

openpyxl.styles.Side( ) で罫線を定義します。( )の中のstyle=で罫線を線の種類を設定、color=で罫線の線の色を設定します。罫線の種類は下記の通りいくつかの種類があります。colorは16進数カラーコードで値を入れます。

# 罫線の設定 - 上、下、左、右の罫線を設定
border = openpyxl.styles.Border(top=side_top, bottom=side_bottom, left=side_left, right=side_right)

borderというオブジェクトにopenpyxl.styles.Border( )でセルの罫線を設定します。1つのセルの上下左右の罫線を設定するイメージです。( )の中で、top=が上、bottom=が下、left=が左、right=が右の罫線になります。

top=side_topとし、手前で書いたside_top = openpyxl.styles.Side(style=’thin’, color=’000000′)で定義した罫線を使います。

今回は、セルの上下左右の罫線の色は黒で、上はthin(細線)、下はthick(太線)、左はdotted(点線)、右はdouble(二重線)としています。

# 2行 2列目のセル情報を取得
cell = sh.cell(row=2,column=2)

次に設定したいセルの情報を取得します。今回は2行 / 2列目のセルの罫線を設定します。

# 2行 2列目のセルの罫線を設定
cell.border = border

cell.borderに上記で設定したborderを代入する事で罫線を指示します。

borderのオブジェクトはあくまでもセルの上下左右の線の種類と色を定義した物で、その情報をcell.borderのエクセル セルに代入する事で、borderの情報で罫線を設定するという事になります。

# 罫線の情報を取得する
keisen_top = cell.border.right.style
print(keisen_top)

設定したセルの罫線が何かを確認できます。cell.border.right.styleとする事で、セルの右側の罫線の線の種類を特定でき、下記のように出力されます。

double

以上となります。

OpenPyXLの他の関数の使い方について知りたい場合は下記記事が非常に参考になります。

タイトルとURLをコピーしました