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

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

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

連載一記事目はこちら。

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

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

スポンサーリンク

シートを追加する方法

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

import openpyxl
wb = openpyxl.Workbook()
wb.create_sheet()
wb.get_sheet_names()

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

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

wb.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を指定します。

シートを削除する方法

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

wb.remove_sheet(wb.get_sheet_by_name('Sheet1'))
wb.get_sheet_names()

[‘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作業効率化』発売のお知らせ

この連載が『Pythonでかなえる Excel作業効率化』という本になりました! Pythonの使い方の基本からだけでなく、Pythonでオフィス業務を効率化するために必要な知識をたくさん詰め込みました!ぜひお買い求めください。
Pythonでかなえる Excel作業効率化
Excelは全ビジネスマン必須のアプリケーションですが,操作がめんどうだと感じたことはありませんか? 本書は,「Python」というプログラミング言語を使って,そんなめんどうな業務を自動化・効率化する方法を紹介します。プログラミングがはじめ...

連載目次: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のグラフを作成する〜グラフのつくりかた編〜

コメント

  1. kzmtkkt より:

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

    save(‘test.xlsx’)

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

    • katsuhisa_ より:

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

タイトルとURLをコピーしました