PythonではExcelのフォントを細かいところまで設定することができます。フォントの種類だけでなく大きさや色、アンダーラインなども自由に決めることができます。
これから紹介するコードは以下のコードの続きになると考えてください。シートまで開いた状態からのスタートになります。
1 2 3 4 5 6 7 8 9 10 11 |
import openpyxl #フォントの設定には以下のモジュールが必要 from openpyxl.styles.fonts import Font path = r"C:\Documents\sample.xlsx" wb = openpyxl.load_workbook(path) sheet = wb['シート1'] #この続きのコードを紹介します。 #最後は必ず保存します。 wb.save(path) |
Excelファイルの読み込みからシートの取得までの方法は以下の記事にまとめています。
PythonでExcel操作をするときには必ずファイル(ワークブック)の読み込みからシートの指定をする必要があります。 今回はそんな基本的な部分のコードの書き方を3ステップで紹介していきます。 1:openpyxlモジュールの[…]
フォントの設定
インポート
フォントを設定するには以下のモジュールをインポートします。もし、これがないとフォントの設定を行うたびに「openpyxl.styles.fonts.Font
」と書くことになります。
以下のようにインポートすると「Font
」だけで使えるようになります。
1 |
from openpyxl.styles.fonts import Font |
フォントオブジェクト
フォントの設定ではフォントオブジェクトを作って行います。このオブジェクトには、フォント名やサイズ、色、アンダーラインなどの様々な情報を持たせることができます。
1 2 3 4 5 6 7 8 |
#フォントオブジェクトを作る font_obj = Font(name='HGP明朝B', size=24) #セルに値を書き込む sheet['A1'].value = 'Hello' #font属性に代入 sheet['A1'].font = font_obj |
上のように入力するとA1のセルに「HGP明朝B」で大きさ24の文字が出力されています。
- Excelファイルを取得するとWorkbookオブジェクトが作られます
- シートを取得するとWorksheetオブジェクトが作られます
- セルを取得するとCellオブジェクトが作られます
- セルの値はvalue属性に格納されています
- セルのフォントはfont属性に格納されています(←ココ)
Fontの引数一覧
一覧&意味
物によっては短縮形がありますが、カッコないの書き方でも同じです。
このように様々なオプションがありますが、設定しても変化が分からない物もありました。
変化が分かるものだけを設定してみると以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
for i in range(5): sheet.cell(row=i+1, column=1).value = 'Hello' #フォント名とボールド体 sheet['A1'].font = Font(name='メイリオ', bold=True) #フォント名とイタリック体 sheet['A2'].font = Font(name='Times New Roman', i=True) #フォント名と打消し線 sheet['A3'].font = Font(name='Consolas', strike=True) #影をつける sheet['A4'].font = Font(shadow=True) #文字色を赤に sheet['A5'].font = Font(color='FF0000') |
4行目のshadowはわかりにくいですね。(笑)
キーワード引数に関しては以下の記事にまとめています。関数の引数について書いていますが、書き方は同じです。
Pythonの関数を実行するときに必要な引数についての解説です。呼び出し方によって位置引数とキーワード引数に分けられます。今回はそれらの違いを見ていきましょう。 もし関数や引数の基本について知りたいという方は以下の記事をご覧ください[…]
色コード一覧
16進数のカラーコードを文字列で渡します。「#」はいりません。
よく使う色は下4色くらいだと思います。
フォント名の確認方法
Excelのツールバーから確認することができます。
アンダーライン4種類
- single:文字列の長さ文の一本線
- double:文字列の長さ文の二本線
- singleAccounting:セルの長さ文の一本線
- doubleAccounting:セルの長さ文の二本線
1 2 3 4 5 6 7 |
for i in range(4): sheet.cell(row=i+1, column=1).value = 'Hello' sheet['A1'].font = Font(u='single') sheet['A2'].font = Font(u='double') sheet['A3'].font = Font(u='singleAccounting') sheet['A4'].font = Font(u='doubleAccounting') |
上下付き文字3種類
- superscript:上付き文字
- subscript:下付き文字
- baseline:元に戻る
1 2 3 4 5 6 7 8 9 10 11 |
for i in range(3): sheet.cell(row=i+1, column=1).value = 'Hello' #上付き文字 sheet['A1'].font = Font(vertAlign='superscript') #下付き文字 sheet['A2'].font = Font(vertAlign='subscript') #元に戻る sheet['A3'].font = Font(vertAlign='baseline') |
まとめ
- フォントの設定はフォントオブジェクトを作る
- キーワード引数を設定する
- name、size、colorぐらいあれば十分かな。。。
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]