こんにちは。かつひさ(@katsuhisa__)です。
PythonのOpenPyXLモジュールを使い、面倒で退屈なExcel作業をPythonで自動化する方法をお伝えする連載の四記事目です!
連載一記事目はこちら。
前回は、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()メソッドを使えば、ワークブックの末尾にシートが追加されます。また、シートの名前は、Sheet’X’となります。(Xには数字が入る。)上述したコードでは、Sheet1が生成されています。
「ん?先ほどのコードの結果が、[‘Sheet’, ‘Sheet1’]であれば、Sheet1だけでなくSheetも作成されているのでは?」と思われた方もいるかもしれません。Sheetは、openpyxl.Workbook()関数を実行した際に作成されたシートで、create_sheet()メソッドで作成したのではないのでご注意ください。
openpyxl.Workbook()関数は、連載三記事目で学習したので、よければ復習してみてください。
挿入位置とシート名を指定して、シート追加する
また、先ほどのメソッドは次のように書けば、シートを挿入する位置と、シート名を指定してシート作成することもできます。
シートの位置はindexで指定し、シート名はtitleで指定します。
なお、indexは0からはじまるのでご注意ください。例えば、Excelファイルの先頭にシートを挿入したい場合は、0を指定します。
シートを削除する方法
次に、シートを削除する方法を学習しましょう。先ほどのコードの後ろに続けて以下のコードを実行してみましょう。
wb.remove_sheet(wb.get_sheet_by_name('Sheet1'))
wb.get_sheet_names()
[‘Sheet’]
と結果が返ってくれば成功です。Sheet1が削除されました。
では、利用したメソッドを解説します。
シートを削除するメソッド
ワークブックオブジェクトのremove_sheet()メソッドは、引数にとったシートオブジェクトを削除できます。
また、シートオブジェクトの取得には、本連載の一記事目で学習した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を操作するモジュールOpenPyXL
OpenPyXLというモジュールを使うことでPythonでExcelファイルを操作することができます。本シリーズでは初心者向けにExcelファイルの作業をPythonで自動化する方法をお伝えします。- PythonでExcel作業を自動化するOpenPyXLのはじめての使い方
- OpenPyXLで複数のセルの値を取得する方法
- OpenPyXLでExcelファイルの新規作成・保存を行う方法
- PythonでOpenPyXLを使ってExcelのシートを追加・削除する方法
- PythonでOpenPyXLでExcelのセルに値を入力する方法と編集する方法
- PythonでOpenPyXLを使いExcelのフォントを設定する方法
- PythonでOpenPyXLを使いExcelに数式を入力する方法
- PythonでOpenPyXLを使いExcelの行と列について色々な設定をする方法
- PythonでOpenPyXLを使いExcelの行と列を固定する方法
- PythonでOpenPyXLを使いExcelのグラフを作成する〜Chart関連オブジェクトの紹介〜
- PythonでOpenPyXLを使いExcelのグラフを作成する〜グラフのつくりかた編〜
コメント
https://tonari-it.com/python-openpyxl-beginner-add-excel-sheet/
の
save(‘test.xlsx’)
は
wb.save(‘test.xlsx’)
と書いていただいた方が親切かと。
(ブラウザはfirefoxで確認)
こんにちは。コメントありがとうございます。確認が遅れ申し訳ありません。
さっそく記事を修正いたしました。ご指摘いただきありがとうございました。