openpyxlを使って、既存ファイルを開く方法もあるけど、
まっさらなエクセルファイルを新規作成したい…。
なるほど…。
では今回は、「openpyxlでエクセルファイルを新規作成する方法」を
できるだけわかりやすく解説いたします。
openpyxlでエクセルファイルを新規作成する方法
「workbook」を使います。まずは全コードと実行結果をお見せします。
解説は後ほど行います。
全コード
import openpyxl
wb = openpyxl.Workbook()
wb.save('C:/Utatane/output.xlsx')
wb = openpyxl.Workbook()
実行結果
「output.xlsx」が新規作成されます。
事前準備
- openpyxlのインストール
既存のエクセルファイルを編集するには「openpyxl」のインストールが必要です。
openpyxlのインストール方法
openpyxlを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install openpyxl
※openpyxlを使用したことがある場合は、このインストール作業は不要です。
インストールに関する詳細や、インストールができなかった場合の対処法は下記記事で解説しております。
また、既存ファイルを開いて保存する方法など、基本解説も行っておりますのでご参考ください。
解説
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
インポート
まずは「openpyxl」のインポートを行います。
【インポートとは】
「openpyxl」を使えるようにする処理のことです。
「学校の勉強をするために、机の上で教科書(openpyxl)を開く」ようなものだと思ってください。
インポートを行わないと、openpyxlは使えませんのでご注意ください。
下記コードにて「openpyxl」がインポートされます。
import openpyxl
繰り返しになりますが、この一文を書かないと「openpyxl」は使えませんので、必ず書くようにしてください。
エクセルファイルを新規作成
次にエクセルファイルを新規作成します。
下記がそのコードです。
wb = openpyxl.Workbook()
【コードの解説】
新しい名前の変数(今回はwb)を書いたら、「=(イコール)」を書きます。
今回はわかりやすく「wb(workbookの略)」としましたが、何でも構いません。
しかしながら、つけられない名前があったりしますので、下記記事をご参考ください。
イコールの後ろには、「openpyxl.Workbook()」を書いてください。
()内には何も記述する必要はありません。
<エクセルファイル新規作成のテンプレ>
【 変数 = openpyxl.Workbook() 】
これで、新規作成されたエクセルファイル(ブック)が変数(wb)に格納された形になります。
このエクセルファイルを編集する場合は、さらにシートを変数に格納する必要があります。
詳細は「新規作成したエクセルファイルを編集する方法」の項をご参考ください。
ファイルを保存
新規作成したエクセルファイルは「保存」という作業をして初めて目に見えるようになります。
新規作成した段階では、データ上にしか存在していませんのでご注意ください。
wb.save('C:/Utatane/output.xlsx')
上記コードにて、エクセルファイルの保存を行っております。
【コードの解説】
ブックが格納された変数に続けて「.save()」を書きます。
()内に「保存するフォルダパス」と「ファイル名」を指定してください。
<エクセルファイル保存のテンプレ>
【 ブックが格納された変数.save(‘保存するフォルダパス/ファイル名.xlsx’) 】
【フォルダパス】とは
ファイルの在りかを示す「住所」のようなものです。
フォルダパスの確認方法ですが、ファイルを保存したいフォルダを開き、
「アドレスバー(下図の青色部分)」をクリックしてください。これがフォルダパスです。
フォルダパスにファイル名を追加すれば、保存先の指定が完成します。
「’C:/Utatane/output.xlsx’」
パスは「’(クォーテーション)」で囲ってください。
また、コピペで「C:\\」や「C:¥」になる場合は、「/」に書き直しましょう。
次に、openpyxlでエクセルファイルを新規作成する際の注意点を確認しておきましょう。
エクセルファイルを新規作成する際の注意点
openpyxlでエクセルファイルを新規作成した場合と、手動で新規作成した場合とでは違いがあります。
それは「シート名」です。
手動で新規作成した場合は「Sheet1」となっていますが、openpyxlで新規作成した場合は「Sheet」となっています。
シートを取得する際や、シート内を編集する際に、シート名の指定を間違えないようにしましょう。
新規作成したエクセルファイルを編集する方法
ここからは、新規作成したエクセルファイルを編集する簡単な方法を紹介いたします。
下記は、「Sheet」のA1セルに「Utatane」という文字を書き込んで保存した場合の例です。
import openpyxl
wb = openpyxl.Workbook()
ws = wb['Sheet']
ws['A1'].value = 'Utatane'
wb.save('C:/Utatane/output.xlsx')
4行目と6行目のみ解説いたします。
ws = wb['Sheet']
上記一文にて、ブック内のシート(Sheet)を変数に格納しています。
エクセルファイルを新規作成した際に、ブックを変数に格納しましたよね。
シート内を編集する際はシートを変数に格納する必要がありますので、覚えておいてください。
【コードの解説】
新しい名前の変数(今回はws)を書いたら、イコールを書きます。
ブックが格納された変数(今回はwb)に続けて[]を書いてください。
[]内に編集するシート名を書いたら完了です。
シート名は「’(クォーテーション)」で囲ってください。
囲まないと正常に動きません。
また、エクセルファイルを新規作成した場合のシート名は「Sheet」です。
「Sheet1」ではないのでご注意ください。
ws['A1'].value = 'Utatane'
上記一文にて、「Sheet」内の「A1」セルに「Utatane」という文字を書き込みしています。
【コードの解説】
シートを格納した変数に続けて[]を書きます。
[]内には、書き込みしたいセルを指定してください。
セル名も「’(クォーテーション)」で囲ってください。
書き込みしたいセルを指定したら、「.value」を書き、イコールを書きます。
イコールの後ろには、書き込みする値を記述してください。
「value」は「値」という意味で、今回の場合は、「A1の値をUtataneにする」という処理になります。
書き込みしたい値が数値の場合は、「’(クォーテーション)」で囲まなくて大丈夫です。
しかしながら、文字の場合は囲む必要があります。
覚えられない場合は、「文字・数値」どちらの場合でも囲っておくのが無難です。
さらに高度な編集をしたいひと向けに、関連記事を貼っておきます。次のステップとして挑戦してみてください。
うまく動作しない場合の対処法
エラーが出る
Worksheet ○○ does not exist
「指定したシートがありません」というエラーです。
指定のシート名が間違っていないか、「sheet」など先頭が小文字になっていないか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
No such file or directory: ○○
これは、ファイルやフォルダが見つからないというエラーです。
今回の場合は、保存先のフォルダパスが間違っている可能性がありますので再度確認してみましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
openpyxlでエクセルファイルを新規作成する方法を解説いたしました。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
挫折せずにPythonを独学で学習する方法は特におすすめです。
最後までお読みいただき、ありがとうございました。がんばってください!