前回は、PythonのOpenPyXLライブラリを使ってMicrosoft Excelのセルのフォント設定を行う方法を取り上げた。これだけでもさまざまなことが可能になるが、今回は前回の取り組みをさらに進め、セルの既存のフォント設定はそのままに、サイズだけなど特定のスタイルを変更する方法を取り上げる。この方法を使えば、既存のMicrosoft Excelデータをスマートに変更できるようになる。
連載「PythonでExcel作業の効率化を図ろう」のこれまでの回はこちらを参照。
セルのフォントサイズだけを変更する
前回に生成したMicrosoft Excelファイルを「前回のサンプルファイル.xlsx」とし、このデータのセルのフォントサイズだけを変更することを考える。
上記のスクリーンショットのように、このデータはフォント、サイズ、スタイル(ボールド、斜体、下線)が設定されている。このフォント設定を引き継ぎながらフォントサイズだけを変更することを考える。
単純に考えて、次のようなスクリプトを作る。
openpyxl_sample_font_3.py
import openpyxl
from openpyxl.styles import Font
#=========================================================================
# 開くファイルのパス、保存するファイルのパス
#=========================================================================
input_xlsx_file_path = '前回のサンプルファイル.xlsx'
output_xlsx_file_path = 'サンプルファイル.xlsx'
#=========================================================================
# Microsoft Exce データの生成とワークシートの取得
#=========================================================================
# 新規ワークブックの作成
wb = openpyxl.load_workbook(input_xlsx_file_path)
# アクティブワークシートの取得
ws = wb.active
#=========================================================================
# Microsoft Exce セルフォントの変更
#=========================================================================
# A1: フォントサイズを変更
ws['A1'].font = Font(size=50)
# A2: フォントサイズを変更
ws['A2'].font = Font(size=50)
# A3: フォントサイズを変更
ws['A3'].font = Font(size=50)
# A4: フォントサイズを変更
ws['A4'].font = Font(size=50)
# A5: フォントサイズを変更
ws['A5'].font = Font(size=20)
# A6: フォントサイズを変更
ws['A6'].font = Font(size=20)
# A7: フォントサイズを変更
ws['A7'].font = Font(size=20)
# A8: フォントサイズを変更
ws['A8'].font = Font(size=20)
#=========================================================================
# 生成したMicrosoft Excelデータをファイルへ保存
#=========================================================================
wb.save(output_xlsx_file_path