PythonのOpenPyXLを使うとMicrosoft Excelのセルの装飾を変えることができる。前回まで、請求書シートのセルの装飾を変更する方法を紹介してきた。
OpenPyXLは本連載で取り上げた例に限らず、さまざまな装飾操作ができる便利なライブラリだ。このライブラリの使い方を知っているだけで、人手作業を減らして業務の効率改善に取り組める。今回はOpenPyXLの基本的な使い方として、セルのフォントを操作する方法を取り上げる。
連載「PythonでExcel作業の効率化を図ろう」のこれまでの回はこちらを参照。
OpenPyXLでセルの装飾をいろいろ操作できる
これまでは業務で使うことが多い請求書のシートを例に、PythonのPandasライブラリやOpenPyXLライブラリを使って、シートのセルに値を入力したり、セルの装飾を変更したりする方法を紹介してきた。
セルの装飾の多くはOpenPyXLライブラリから操作できる。これまでに取り上げた機能はOpenPyXLの機能のほんの一部だ。OpenPyXLライブラリの使い方がわかると、これまでMicrosoft Excelファイルの編集を人手で行っていた操作をPythonスクリプトから自動化できる。局所的なデジタルトランスフォーメーション(DX)ではあるのだが、こうした処理を自動化できることは業務改善につながるので積極的に活用していきたい。
今回は、OpenPyXLライブラリの基本的な機能として、セルのフォントを操作する方法を取り上げる。シンプルな操作だがPythonスクリプトから操作できることがわかると、さまざまな操作を自動化することができるようになる。
セルのフォントを操作するPythonスクリプト
最初に、今回の成果物を掲載する。
openpyxl_sample_font_1.py
import openpyxl
from openpyxl.styles import Font, Color
#=========================================================================
# 保存するファイルのパス
#=========================================================================
output_xlsx_file_path = 'サンプルファイル.xlsx'
#=========================================================================
# Microsoft Exce データの生成とワークシートの取得
#=========================================================================
# 新規ワークブックの作成
wb = openpyxl.Workbook()
# アクティブワークシートの取得
ws = wb.active
#=========================================================================
# Microsoft Exce データの生成とワークシートの取得
#=========================================================================
# A1: フォント名
ws['A1'] = 'フォント名'
ws['A1'].font = Font(name='メイリオ')
# A2: フォントサイズ
ws['A2'] = 'フォントサイズ'
ws['A2'].font = Font(size=24)
# A3: フォントスタイル太字
ws['A3'] = 'フォントスタイル太字'
ws['A3'].font = Font(bold=True)
# A4: フォントスタイル斜体
ws['A4'] = 'フォントスタイル斜体'
ws['A4'].font = Font(italic=True)
# A5: フォントスタイルアンダーライン
ws['A5'] = 'フォントスタイルアンダーライン'
ws['A5'].font = Font(underline='single')
# A6: フォントスタイル取り消し線
ws['A6'] = 'フォントスタイル取り消し線'
ws['A6'].font = Font(strike=True)
# A7: 文字色
ws['A7'] = '文字色'
ws['A7'].font = Font(color=Color(rgb='FFA500')) # 橙色
# A8, B8, C8 垂直方向配置 基本、上付き文字、下付き文字
ws['A8'] = '垂直方向配置 基本'
ws['A8'].font = Font(vertAlign='baseline')
ws['B8'] = '垂直方向配置 下付き文字'
ws['B8'].font = Font(vertAlign='subscript')
ws['C8'] = '垂直方向配置 上付き文字'
ws['C8'].font = Font(vertAlign='superscript')
#=========================================================================
# 生成したMicrosoft Excelデータをファイルへ保存
#=========================================================================
wb.save(output_xlsx_file_path
編集および実行中の様子は次のとおり。
このスクリプトを実行すると、次のような「サンプルファイル.xlsx」というMicrosoft Excelファイルが作成される(見やすいように倍率を230%に設定しているほか、列幅を広げてある)。
それでは、どのようなコードで上記のようなMicrosoft Excelファイルを生成するかを説明していこう。