Pythonでエクセルファイルの編集をしているんだけど、
タイトル行を強調したい!
文字を太字にする方法はないの?
あります!
簡単な方法で太字にできますよ!
openpyxlで文字を太字にする方法を
Python歴3年の私ができるだけわかりやすく解説し、解決に導きます。
openpyxlで既存エクセルの文字を太字にするには
「bold」を使います。まずは実行見本をどうぞ。
実行見本
全コード
ひとまず全コードを網羅します。解説は後ほど行います。
import openpyxl
from openpyxl.styles.fonts import Font
wb = openpyxl.load_workbook('input.xlsx')
ws = wb['Sheet1']
font_futoji = Font(bold = True)
ws['A2'].font = font_futoji
wb.save('input.xlsx')
font_futoji = Font(bold = True)
ws[‘A2’].font = font_futoji
事前準備
- openpyxlのインストール
既存のエクセルファイルを編集するには「openpyxl」のインストールが必要です。
openpyxlのインストール方法
openpyxlを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install openpyxl
※openpyxlを使用したことがある場合は、このインストール作業は不要です。
解説
インポート
>>1.import openpyxl
>>2.from openpyxl.styles import Font
「openpyxl」のインポートと、フォントを変更するために上記2行を記述します。
文字を太字にする
>>7.font_futoji = Font(bold = True)
>>8.ws[‘A2’].font = font_futoji
7行目の「Font()」でフォントの設定をしています。
「bold = True」を指定することで、文字を太字にすることができます。
そしてその設定を「font_futoji」という変数に入れています。
8行目で指定のセル(A2セル)に「font_futoji」(7行目で設定した太字)を適用しています。
太字など、フォントを変更する場合は、「.font」を付けてください。
【 太字設定を入れておく変数 = Font(bold = True) 】
【 ワークシート変数[‘セル名’].font = 太字設定を入れておいた変数 】
以上2行で文字を太字に変更することができます。
この2行を1行で記述することもできます。
1行で記述する
さきほど2行で記述した太字設定を、下記のようにすれば1行で記述することができます。
ws[‘A2’].font = Font(bold = True)
1行で記述するのも、2行で記述するのも結果は変わりませんが、用途によっては長所と短所があります。
- 1行で記述:構文が短くてすむ。毎回「bold = True」を書く必要があるが、一度しか使わない場合は1行の方が楽。
- 2行で記述:2行に分けるので手間はかかるが、他のセルなどに変数を使いまわすことができる。複数のセルに適用する場合は、2行の方が便利。
実際のプログラミングでは、変数を使いまわすことが多いので、2行で記述する方が実践向きと言えます。
うまく動作しない時
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
Permission denied: ○○
操作しようとしているファイルにアクセスできないというエラーです。
「ファイルを開いている状態なので編集できない」と言っていることが多いので、開いていれば閉じて再度トライしましょう。
開いていなければ、コンピューターを再起動して再度トライしてみましょう。
Worksheet ○○ does not exist
「指定したシートがありません」というエラーです。
指定のシート名が間違っていないか、「sheet1」など先頭が小文字になっていないか確認しましょう。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
openpyxlで既存エクセルの文字を太字にする方法を解説いたしました。
太字 = bold と覚えてください。
最後までお読みいただき、ありがとうございました。がんばってください!