PythonでOpenPyXLを使ってExcelのシートを追加・削除する方法


こんにちは。かつひさ(@katsuhisa__)です。

PythonのOpenPyXLモジュールを使い、面倒で退屈なExcel作業をPythonで自動化する方法をお伝えする連載の四記事目です!

連載一記事目はこちら。

PythonでExcel作業を自動化するOpenPyXLのはじめての使い方
Excel 間でのセルをコピーしたり、退屈な作業を、Pythonで自動化してみませんか?OpenPyXLを使えば、PythonでかんたんにExcel 作業を実現できます。本記事では、PythonでExcelファイルを操作するモジュールOpenPyXLのはじめての使い方(初心者向け)についてご紹介します!

前回は、OpenPyXLでExcelファイルの新規作成・保存を行う方法をご紹介しました。今回は、OpenPyXLでExcelのシートを追加・削除する方法を学習しましょう!

シートを追加する方法

さっそく新規作成したExcelファイルに、シートを追加するコードを見てみましょう。

[‘Sheet’, ‘Sheet1’]
と結果が返ってくれば成功です。

では、前回学習したように、このExcelファイルをワークブックオブジェクトのsave()メソッドで保存してみましょう。(ファイル名は、test.xlsxとします。)

さっそく、中身を確認しましょう。

sheet1が追加されていますね。引き続き、メソッドの詳細を解説します。

シートを追加するメソッド

ワークブックオブジェクト.create_sheet()

create_sheet()メソッドを使えば、ワークブックの末尾にシートが追加されます。また、シートの名前は、Sheet’X’となります。(Xには数字が入る。)上述したコードでは、Sheet1が生成されています。

「ん?先ほどのコードの結果が、[‘Sheet’, ‘Sheet1’]であれば、Sheet1だけでなくSheetも作成されているのでは?」と思われた方もいるかもしれません。Sheetは、openpyxl.Workbook()関数を実行した際に作成されたシートで、create_sheet()メソッドで作成したのではないのでご注意ください。

openpyxl.Workbook()関数は、連載三記事目で学習したので、よければ復習してみてください。

PythonでOpenPyXLを使ってExcelファイルの新規作成・保存を行う方法
Excel 間でのセルをコピーしたり、退屈な作業を、Pythonで自動化してみませんか?OpenPyXLを使えば、PythonでかんたんにExcel 作業を実現できます。本記事では、OpenPyXLでExcelの作成・編集をPythonから行う方法をご紹介します!

挿入位置とシート名を指定して、シート追加する

また、先ほどのメソッドは次のように書けば、シートを挿入する位置と、シート名を指定してシート作成することもできます。

ワークブックオブジェクト.create_sheet(index=数字, title=’シート名’)

シートの位置はindexで指定し、シート名はtitleで指定します。

なお、indexは0からはじまるのでご注意ください。例えば、Excelファイルの先頭にシートを挿入したい場合は、0を指定します。

シートを削除する方法

次に、シートを削除する方法を学習しましょう。先ほどのコードの後ろに続けて以下のコードを実行してみましょう。

[‘Sheet’]
と結果が返ってくれば成功です。Sheet1が削除されました。

では、利用したメソッドを解説します。

シートを削除するメソッド

ワークブックオブジェクト.remove_sheet(シートオブジェクト)

ワークブックオブジェクトのremove_sheet()メソッドは、引数にとったシートオブジェクトを削除できます。

また、シートオブジェクトの取得には、本連載の一記事目で学習したget_sheet_by_name()メソッドを使います。復習のために構文を再度掲載しておきます。

ワークブックオブジェクト.get_sheet_by_name(‘シート名’)

このように書けば、指定したシート名をシートオブジェクトとして扱うことができます。

これら2つの構文を組み合わせると、以下のように書くことで、指定したシートを削除することができます。

ワークブックオブジェクト.remove_sheet(ワークブックオブジェクト.get_sheet_by_name(‘シート名’))

少々ややこしく見えますが、remove_sheet()メソッドの引数に、get_sheet_by_name()メソッドで取得したシートオブジェクトを代入しています。

最後に注意点ですが、編集したExcelファイルは、ワークブックオブジェクト.save()メソッドを使い、保存することを忘れないようにしましょうね。

さいごに

以上、OpenPyXLでExcelのシートを追加・削除する方法でした。

次回は、Excelのセルの値の編集をOpenPyXLで行う方法を学習しますのでお楽しみにください。ここまで学習が終われば、これまで学習したことを組み合わせて、大半のExcel操作の自動化ができるようになるはずです。
なお、予習を進めたい方は、『退屈なことはPythonにやらせよう』をお買い求めいただくと良いかと思います。

本連載の更新情報は、管理人のタカハシ(@ntakahashi0505)さんのTwitterアカウントや、もちろん私のアカウント(@katsuhisa__)で配信していくので、もしよければ、フォローをお願いします!

連載目次:PythonでExcelを操作するモジュールOpenPyXL

OpenPyXLというモジュールを使うことでPythonでExcelファイルを操作することができます。本シリーズでは初心者向けにExcelファイルの作業をPythonで自動化する方法をお伝えします。
  1. PythonでExcel作業を自動化するOpenPyXLのはじめての使い方
  2. OpenPyXLで複数のセルの値を取得する方法
  3. OpenPyXLでExcelファイルの新規作成・保存を行う方法
  4. PythonでOpenPyXLを使ってExcelのシートを追加・削除する方法
  5. PythonでOpenPyXLでExcelのセルに値を入力する方法と編集する方法
  6. PythonでOpenPyXLを使いExcelのフォントを設定する方法
  7. PythonでOpenPyXLを使いExcelに数式を入力する方法
  8. PythonでOpenPyXLを使いExcelの行と列について色々な設定をする方法
  9. PythonでOpenPyXLを使いExcelの行と列を固定する方法
  10. PythonでOpenPyXLを使いExcelのグラフを作成する〜Chart関連オブジェクトの紹介〜
  11. PythonでOpenPyXLを使いExcelのグラフを作成する〜グラフのつくりかた編〜

  投稿者プロフィール

katsuhisa_
B2B SaaSのスタートアップでSRE のお仕事をやっています。 めんどうなことをそのままやり続けるのではなく、省力化する人を増やしたい。

コメント

  1. kzmtkkt より:

    https://tonari-it.com/python-openpyxl-beginner-add-excel-sheet/

    save(‘test.xlsx’)

    wb.save(‘test.xlsx’)
    と書いていただいた方が親切かと。
    (ブラウザはfirefoxで確認)

    • katsuhisa_ より:

      こんにちは。コメントありがとうございます。確認が遅れ申し訳ありません。
      さっそく記事を修正いたしました。ご指摘いただきありがとうございました。