前回は、PythonのOpenPyXLライブラリを使ってMicrosoft Excelのセルのフォント設定を行う方法を取り上げた。これだけでもさまざまなことが可能になるが、今回は前回の取り組みをさらに進め、セルの既存のフォント設定はそのままに、サイズだけなど特定のスタイルを変更する方法を取り上げる。この方法を使えば、既存のMicrosoft Excelデータをスマートに変更できるようになる。

連載「PythonでExcel作業の効率化を図ろう」のこれまでの回はこちらを参照

セルのフォントサイズだけを変更する

前回に生成したMicrosoft Excelファイルを「前回のサンプルファイル.xlsx」とし、このデータのセルのフォントサイズだけを変更することを考える。

  • 前回のサンプルファイル.xlsx

    前回のサンプルファイル.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
  • openpyxl_sample_font_3.pyの編集および実行中のようす

    openpyxl_sample_font_3.pyの編集および実行中のようす

スクリプトを実行した結果

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら