
openpyxlでシートの操作
Excelのシート操作をプログラムで自動化すると、作業効率が大幅に向上します。
特に、複数のファイルや大量のデータを扱う際に効果的です。
具体的には以下のようなメリットがあります。
- 手作業のミスを減らせる
- 大規模作業を短時間で処理できる
本記事では、openpyxlでシートを操作する方法について解説します!
シートを指定する
Excelファイルの中で特定のシートを選択して操作するには、以下の流れを参考にしてみてください。
- シートを指定して取得する
ws = wb["シート名"]
シート名を取得する
Excelファイルに含まれるシートの名前を調べたい場合、以下の手順で簡単に確認できます。
- シート名の一覧を取得する
sheet_names = wb.sheetnames print(sheet_names)
wb.sheetnamesは、ワークブック内のシート名をリスト形式で返します。
シート名を変更する
既存のシートの名前を変えたい場合、以下の流れで簡単に行えます。
- 変更対象のシートを取得
ws = wb["旧シート名"]
- シート名を変更する
ws.title = "新しいシート名"
この一行で、シート名をお好みのものに設定できます。
ファイルを再度保存すれば、シート名の変更が反映されます。
シートをアクティブにする
Excelを開いたときに最初に表示されるシートを指定するには、下記のような手順で操作できます。
- アクティブにしたいシートのインデックスを指定
# 例えば2番目のシートをアクティブにする場合 wb.active = 1 # 先頭シートが0、2番目が1という形で数えます
この設定で、Excelを開いた際に2番目のシートが表示されるようになります。

インデックスは0から始まるので注意しましょう。
シートをクリアする
既存のシートからデータだけを消したい場合は、以下のような方法で対応できます。
- クリアしたいシートを取得する
ws = wb["クリア対象シート"]
- シート内のセルを削除または空にする
たとえばシートすべてをクリアするには以下の方法があります。- 行と列ごと削除する
- ループで全セルを空にする
# (例)全行と全列を順次削除する方法 # 1行目から最終行まで削除 ws.delete_rows(1, ws.max_row) # 必要に応じて、全列も削除 # ws.delete_cols(1, ws.max_column)
または全セルを空にする場合:
for row in ws.iter_rows(): for cell in row: cell.value = None
これでシートの内容がクリアされた状態が反映されます。
以上で、シートの中身をきれいにリセットできます。行や列の削除とセルのクリアはやり方が異なるので、必要に応じて使い分けてください。
シートを非表示にする
あるシートを見えない状態にしておきたいときは、以下の手順で簡単に実行できます。
- 非表示にしたいシートを取得する
ws = wb["非表示にしたいシート"]
「非表示にしたいシート」の部分を実際のシート名に変えてください。
- シートの表示状態を”hidden”にする
ws.sheet_state = "hidden"
これでExcel上ではシートタブが表示されなくなります。
以上の手順で、簡単にシートを非表示にできます。
再表示する場合は、ws.sheet_state = “visible”に戻して同様に保存してください。
公式ドキュメント
関連記事

コメント