Pythonからセルのフォントを操作する - 既存のスタイルを引き継ぐ

2024年4月12日(金)11時5分 マイナビニュース


前回は、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
このスクリプトを実行すると次のようなMicrosoft Excelファイルが得られる。
一見するとサイズが変更されているように見えるが、それ以外のデータも書き換わっている。例えば、次のスクリーンショットのようにフォント名に注目してみると、「BIZ UDPゴシック」であって欲しいところが「MS Pゴシック」になっている。
それでは、なぜこうなったのかを詳しく見ていこう。
.

マイナビニュース

「フォント」をもっと詳しく

「フォント」のニュース

「フォント」のニュース

トピックス

x
BIGLOBE
トップへ