-前回、PythonからExcelファイルを操作する方法を紹介した。そこで、今回は、既存の請求書や領収書のフォーマットにデータを自動入力する方法を紹介しよう。今では大抵の仕事においてExcelで書類を作成する作業が発生する。Pythonを使って作業時間の短縮に挑戦しよう。今回作成する請求書自動入力プログラム今回作るプログラムについてそこで、このライブラリを利用して、請求書と納品書の二つのExcelファイルを自動的に生成するプログラムを作ってみよう。具体的には、以下の手順で処理を自動化してみよう。納品物一覧ファイルを読み込んで、請求書と納品書のExcelに差し込んで新規保存するなお、プログラムおよび、Excelのテンプレートファイル一式は、こちらからダウンロードできる。Excelで請求書と納品書のテンプレートを作ろうそれでは、最初にテンプレートを作成しよう。ここで作るのは、請求書(invoice.xlsx)と納品書(delivery_slip.xlsx)だ。以下のような一般的なものを準備してみた。最近では、会社の持ち味を反映した個性的な請求書・納品書も増えているので、これを叩き台にExcelを駆使してオリジナルテンプレートを作ることもできだろう。請求書のテンプレートと納品書のテンプレート納品物の一覧を作成しよう次に、納品物の一覧表を「list.xlsx」という名前で作成しよう。今回の請求書・納品書では、8行のスペースしか用意しなかったので、それに収まるように適当にデータを入力してみよう。納品物の一覧データを作成したExcelファイルプログラムを作ろうテンプレートと、テンプレートに流し込むデータを用意したら、いよいよデータをテンプレートに流し込むPythonのプログラムを作ってみよう。PythonからExcelファイルを操作するライブラリ『openpyxl』は前回の内容を参考にインストールしたものとする。以下のプログラムを「gen_invoice.py」という名前で保存しよう。(*6)wb_iv.save(file_out_iv)wb_ds.save(file_out_ds)print("ok")プログラムを実行するには、コマンドラインから以下のように入力して[Enter]キーを押そう。書き換わっていることを確認しよう。テンプレートにデータが流し込まれたそれでは、プログラムを確認してみよう。プログラムの(*1)の部分では、ファイル名を指定している。プログラムの設定などは、このようにプログラム冒頭にまとめて書いておくのが鉄則だ。(*2)の部分では、納品物一覧のExcelファイルを読み込んでいる。ファイルを読み込む際、data_only=Trueというオプションを指定すると、セルに数式が入っていた場合、数式ではなく計算結果が取得できるようになるので便利だ。ws["A1"].valueのようにセル名を指定して値を取得できる。ws["A3:F10"]のようにして、複数セル範囲を取得することも可能だ。(*3)ではテンプレートファイルを読み込む。(*4)では宛名と日付の部分を書き換える。日付は、プログラムを実行した日を挿入する。(*5)の部分では、納品物の一覧データをfor構文を使って一つずつ書き込む。最後に、(*6)の部分で、Excelファイルを保存する。ワークブックの読み込みと保存それでは、簡単にopenpyxlの使い方をまとめてみよう。ライブラリを利用するには、import文を以下のように使う。openpyxlそして、Excelのブックを読み込むには、下記のように、load_workbook()を使い、保存には、wb.save()を使う。ワークブックの保存wb.save("保存ファイル名.xlsx")セルの読み取りと値の設定セルの値を操作する前に、ワークブックのオブジェクトから、ワークシートのオブジェクトを取得する必要がある。wb.activeそして、ワークシートのオブジェクトが得られたら、セル名を指定して値を取得・設定できる。)この時、セルの位置を数値で指定することもできる。引数に与えるパラメータだが、行がrow、列がcolumn、設定する値がvalueだ。value="こんにちは")今回紹介したプログラムで使ったのは、これだけなので、それほど難しいことはないだろう。openpyxlライブラリのマニュアルが以下に用意されている。これを見れば、スタイルなども操作できることが分かる。https://openpyxl.readthedocs.ioまとめ以上、今回は、よくある請求書と納品書のExcelファイルを自動生成するプログラムを紹介した。大半の作業が電子化されていたとしても、大なり小なり、請求書や領収書の作成作業が生じるのは仕方がない。そこで、毎月決まり切った処理は、できるだけ自動化するなら、作業時間を短縮するだけでなく、心理的ストレスも少なくなるだろう。決まり切った処理ばかりで、それほど難しい部分はないので自動化に挑戦してみよう。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。テキスト音楽「サクラ」など。※本記事は掲載時点の情報であり、最新のものとは異なる場合があります。Corporation。