こんにちは。かつひさ(@katsuhisa__)です。
PythonのOpenPyXLモジュールを使い、面倒で退屈なExcel作業をPythonで自動化する方法をお伝えする連載の三記事目です!
連載一記事目はこちら。
前回は、OpenPyXLで複数のセルの値を取得する方法をご紹介しました。ここまでで、OpenPyXLを使い、Excelのデータ読み込みをPythonから行うことができるようになりました。今回は、OpenPyXLでExcelファイルの新規作成・保存を行う方法を学習しましょう!
最後までお付き合いください。
事前確認作業
さて、まずは事前に現在の作業ディレクトリにあるExcelファイルの一覧を確認しておきましょう。globモジュールを使えば、作業ディレクトリの中にあるExcelファイルを探索できます。
import glob
glob.glob("*.xlsx") #拡張子が.xlsxのものを探索
[‘example.xlsx’]
と結果が返ってくるかと思います。このExcelファイルは、前回までの連載で使用したExcelファイルですね。現在は、このフォルダにはexample.xlsx以外のExcelファイルが存在しないことが確認できました。
※本連載をこの記事から読み始めた方は、Excelファイルが存在しない前提でももちろんOKです!もちろん、手元にあるExcelファイルが結果表示されていてもお気になさらずに!あくまでも、Excelファイル作成の前後比較のために事前作業として行っているだけです。
新規にExcelファイルを作成する
では、さっそく、シート「test_sheet_1」を持つ、Excelファイル「test.xlsx」を新規に作成してみましょう。
import openpyxl
import glob
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = 'test_sheet_1'
wb.save('test.xlsx')
glob.glob("*.xlsx")
[‘example.xlsx’, ‘test.xlsx’]
と結果が返ってくれば成功です。新規にtest.xlsxが生成されていることが確認できました!
では、test.xlsxを開いてみましょう
シート名が、test_sheet_1になっていることも確認できました。うまくいきましたね。さっそく、先ほどのコードの中身を解説していきます。
新規にワークブックオブジェクトを作成する関数
openpyxl.Workbook()関数を呼び出すと、新規に空のWorkbookオブジェクトを生成することができます。
このタイミングでは、まだExcelファイルは作成されていません。あくまでも新しいワークブックオブジェクトが生成されただけですのでご注意ください。
アクティブなExcelシートを取得する
ワークブックオブジェクトには、activeという属性が用意されています。active属性には、ワークブックのアクティブなシートが格納されています。
これまでの連載では、すでにサンプルで使用するExcelシートの中身が分かっていたため、ワークブックオブジェクトのget_sheet_by_name()メソッドを用いて、作業対象シートを指定していました。
しかし、今回は新規に作成したワークブックオブジェクトなので、あらかじめシート名を確認することはできません。そのため、今回のような場合は、ワークブックオブジェクトのactive属性を調べることが必要です。
今回のサンプルコードでは、取得したシートの名前を、次のコードで上書きしています。
sheet.title = ‘test_sheet_1’
ワークブックオブジェクトを保存するメソッド
ワークブックオブジェクトのsave()メソッドに文字列としてファイル名を渡せば、Excelファイルとして保存できます。このタイミングで、Excelファイルが生成されます。
注意点ですが、ファイル名は、コードを再実行する度に正しいか確認しましょう。意図しない操作(例えば、誤って元のExcelファイルを上書きしてしまうなど)を行わないためにも、常に意識するようにしましょう。
さいごに
以上、OpenPyXLで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のグラフを作成する〜グラフのつくりかた編〜