何もない状態から、タイムカードを作ることになった…。
既存のエクセルファイルではなく、
新しいブックを1から作って編集するにはどうしたらいいの?
なるほど、新しいブックを作成する方法ですね!
タイムカードを作成して保存するコードも紹介いたします!
Pythonのopenpyxlで新しいブックを作成する方法を、
Python歴3年の私ができるだけわかりやすく解説し、解決に導きます。
Pythonのopenpyxlで新しいブックを作成するには
「Workbook()」を使用します。
全コード
ひとまず全コードを網羅します。解説は後ほど行います。
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active
ws['A1'] = 'New Work Book'
wb.save('new_work_book.xlsx')
wb = openpyxl.Workbook()
実行見本
事前準備
- openpyxlのインストール
既存のエクセルファイルを編集するには「openpyxl」のインストールが必要です。
openpyxlのインストール方法
openpyxlを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install openpyxl
※openpyxlを使用したことがある場合は、このインストール作業は不要です。
openpyxlの基礎解説
既存ファイルを開いて保存する方法などの操作の基本解説は、下記記事で行っております。
ご参考ください。
解説
wb = openpyxl.Workbook()
上記一文を記述することで、新しいブックを作成することができます。
【 変数 = openpyxl.Workbook() 】
※Wは大文字です。小文字だとエラーが出ます。
その後は、4行目で「新しく作ったブック」のアクティブなシートを取得し、
6行目で取得したシートのセルに書き込みをしています。
シートを取得する方法やシート名を変更する方法などは下記記事で解説しております。
演習(実践例)
前項で作成した新しいブックを使って、何か作ってみたくなったのではないでしょうか。
それでは冒頭で例に挙がった「タイムカード」を作ってみましょう。
簡単に作れるにしていますので、チャレンジしてみてください。
全コード
import openpyxl
import datetime
today = datetime.datetime.today().strftime('%Y.%m.%d')
nowtime = datetime.datetime.today().strftime('%H:%M')
wb = openpyxl.Workbook()
ws = wb.active
ws['A1'] = '日付'
ws['B1'] = '出勤者'
ws['C1'] = '出勤時刻'
ws['D1'] = '退勤時刻'
ws['A2'] = today
ws['B2'] = 'Utatane'
ws['C2'] = nowtime
wb.save( today + 'MyTimeCard.xlsx')
実行見本
解説
新しいブックを作成し、「今日の日付」や「現在の時間」を書き込みしています。
全て下記記事で解説済のため、今回詳細な解説は割愛させていただきます。
退社時は下記コードを実行することで、「退勤時刻」欄に時間が入ります。
import openpyxl
import datetime
today = datetime.datetime.today().strftime('%Y.%m.%d')
nowtime = datetime.datetime.today().strftime('%H:%M')
wb = openpyxl.load_workbook( today + 'MyTimeCard.xlsx')
ws = wb.active
ws['D2'] = nowtime
wb.save( today + 'MyTimeCard.xlsx')
切れている日付が気になる方は、下記記事で解説している「列の幅を自動調整する方法」をお試しください。
うまく動作しない時
エラーが出る
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
Pythonのopenpyxlで新しいブックを作成する方法を解説いたしました。
「複数の既存ファイルのデータを新しいファイルにまとめる」という処理が必要になった場合にも便利ですので、ぜひご活用ください。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!