openpyxlを使って文字を太字にする方法はわかったけど、
先頭行全てを太字にする場合はどうしたらいいの?
ひとつひとつ指定するのも面倒だし、
ファイルによって何列あるかわからないし…。
簡単に設定する方法があります!
for文を使いますが、短いので初心者にもおすすめです!
openpyxlを使って先頭行を太字にする方法を
python歴3年の私が、できるだけわかりやすく解説し、解決に導きます。
openpyxlを使って先頭行を太字にするには
「bold」と簡単なfor文を使います。まずは実行見本をどうぞ。
実行見本
全コード
ひとまず全コードを網羅します。解説は後ほど行います。
import openpyxl
from openpyxl.styles.fonts import Font
wb = openpyxl.load_workbook('input.xlsx')
ws = wb['Sheet1']
font_bold = Font(bold = True)
for cell in ws['1:1']:
cell.font = font_bold
wb.save('input.xlsx')
font_bold = Font(bold = True)
for cell in ws['1:1']:
cell.font = font_bold
事前準備
- openpyxlのインストール
既存のエクセルファイルを編集するには「openpyxl」のインストールが必要です。
openpyxlのインストール方法
openpyxlを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install openpyxl
※openpyxlを使用したことがある場合は、このインストール作業は不要です。
解説
太字にする方法
>>7.font_bold = Font(bold = True)
文字を太字にする設定をひとまず変数に入れています。
詳しい解説は下記記事で行っておりますので、ご参考ください。
for文の解説
for cell in ws['1:1']:
cell.font = font_bold
上記を記述することで、先頭行のみに太字を適用することができます。
「 ws[‘1:1’] 」は「1行目のみ」という条件を指定をしています。
それを「cell」という変数に入れています。
あとは「for文」にて1セルずつ太字を適用することを繰り返しています。
「cell」には「1行目のみ」という条件がありますので、1行目の終わりまででfor文が終了します。
[‘1:1’]のところを下記のように変更すると、別の個所を太字にすることができます。
- [‘2:2’]:2行目のみ
- [‘A:A’]:A列のみ
for文の基礎は下記記事にて、できるだけわかりやすく解説しておりますので、ご参考ください。
その他の解説
既存ファイルを開いて保存する方法などの操作の基本解説は、下記記事で行っております。
ご参考ください。
うまく動作しない時
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
Permission denied: ○○
操作しようとしているファイルにアクセスできないというエラーです。
「ファイルを開いている状態なので編集できない」と言っていることが多いので、開いていれば閉じて再度トライしましょう。
開いていなければ、コンピューターを再起動して再度トライしてみましょう。
Worksheet ○○ does not exist
「指定したシートがありません」というエラーです。
指定のシート名が間違っていないか、「sheet1」など先頭が小文字になっていないか確認しましょう。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
openpyxlを使って、先頭行を太字にする方法を解説いたしました。
文字色の変更や網掛けにも応用できますので、ご活用ください。
最後までお読みいただき、ありがとうございました。がんばってください!