今日はcreate_sheet() やdelを使用しExcelのワークブックにシートを追加・削除を行います。
PythonでExcelのシートを追加・削除する目的
PythonでExcelを操作する場合、データを書き込むだけではなく、用途に応じてシートを自動で作成・削除したい場面が多くあります。
例えば、
- 月ごとに売上シートを自動作成する
- 部署ごとにシートを分けてレポートを作成する
- 古いシートを削除して最新データだけを残す
- テンプレートから新しいシートを作成する
このような作業をPythonで自動化すれば、毎回Excelを手作業で編集する必要がなくなり、作業時間を大幅に短縮できます。
この記事では、openpyxlを使ってExcelのシートを追加・削除する方法を解説します。
Excelのシートを追加 create_sheet()
まずシートを追加するにはのcreate_sheet()を使用します。
import openpyxl
wb=openpyxl.load_workbook('Hanakuso.xlsx')
print(wb.sheetnames)
wb.create_sheet() #新しいシートを追加
print(wb.sheetnames)
#出力結果は
['hanakuso'] #シート追加前のシートの名前
['hanakuso', 'Sheet'] #新しいシートを追加後のシートの名前
create_sheet() メソッドは新しいworksheetオブジェクトを返します。
デフォルトではワークブックの末尾に新しいシートが追加されます。
シートのタイトルを指定する create_sheet('')
create_sheet() に文字列を渡すことでタイトルを指定することができます。
import openpyxl
wb=openpyxl.load_workbook('Hanakuso.xlsx')
print(wb.sheetnames)
wb.create_sheet('hanakuso2') #新しいシートを追加(シートのタイトルを指定)
print(wb.sheetnames)
#出力結果は
['hanakuso'] #シート追加前のシートの名前
['hanakuso', 'hanakuso2'] #新しいシートを追加後のシートの名前
これでタイトルを指定してシートを作成することができました。
シートのインデックスを指定するcreate_sheet(index=,title='')
さらにcreate_sheet() ではインデックスを指定することで、シートを作成する場所を指定できます。
import openpyxl
wb=openpyxl.load_workbook('Hanakuso.xlsx')
print(wb.sheetnames)
wb.create_sheet(index=0,title='hanakuso2') #新しいシートを追加
print(wb.sheetnames)
#出力結果は
['hanakuso'] #シート追加前のシートの名前
['hanakuso2','hanakuso'] #新しいシートを追加後のシートの名前
インデックスを0と指定することで、既存のシートの前に新しいシートを作成することができました。
シートを削除する del
シートを削除するにはdelを使用します。
import openpyxl
wb=openpyxl.load_workbook('Hanakuso.xlsx')
wb.create_sheet('hanakuso2') #新しいシートを追加
print(wb.sheetnames)
del wb['hanakuso'] #'hanakuso'を削除
print(wb.sheetnames)
#出力結果は
['hanakuso', 'hanakuso2']
['hanakuso2']
辞書のキーを削除するように、del文を使ってワークブックからシートを削除できます。
※ワークブックにシートを追加したり削除した後はsave() を呼び出して保存するのを忘れないように注意してください。
シートを追加・削除しただけではExcelファイルには反映されません。変更内容を保存するために、最後にsave()を実行しましょう。
まとめ
今回は、openpyxlを使ったExcelシートの追加・削除方法について学びました。
今日学んだこと
create_sheet()で新しいシートを追加する方法- シート名を指定して追加する方法
indexを指定して追加する位置を変更する方法delを使って不要なシートを削除する方法- シートを追加・削除した後は
save()で保存すること
これらの操作を覚えておくことで、月ごとの報告書や部署ごとの集計表などを自動で作成できるようになり、Excel作業の効率化につながります。
まずはサンプルコードを実際に動かしながら、シートの追加や削除を試してみてください。基本操作を身に付けることで、より実践的なExcel自動化にもスムーズに取り組めるようになります。

コメント