openpyxlでのエクセル操作と、手動でのデータ入力を併用するためには
「xlwings」というのが必要らしい…。
「xlwingsのインストール方法」や
「xlwingsの使い方」が知りたい…。
承知しました。
「xlwingsのインストール方法」
「xlwingsがインストールできない場合の対処法」
「xlwingsの基本的な使い方」を
できるだけわかりやすく解説いたします。
【著者情報】
Python歴3年。
入社2年目の春に先輩が突然トンズラし、業務を半分肩代わりするハメに…。
今までの1.5倍の仕事をこなせるはずもなく、苦しむ毎日。
業務効率化を模索中にPythonと出合う。
業務とPythonの相性が良く、2倍以上の効率化を実現。現在も効率化を進行中。
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
xlwingsのインストール方法
インストール手順は以下の通りです。
- Windowsの画面左下にあるWindowsマーク(田)をクリック
- 出てきた画面上の検索窓に「コマンドプロンプト」と入力
- 出てきた「コマンドプロンプト」をクリックすると、黒い画面が起動
(ちょっと怪しげですが、大丈夫です) - カーソルが点滅し始めたら、「pip install xlwings」と入力し、「Enterキー」を押す
(何やらごちゃごちゃ出てきます) - 最後の方に「Successfully installed~」と表示されていればインストールは完了
「5」までいけば「xlwings」のインストールが完了です。お疲れ様でした。
これで、openpyxlと手動操作が併用でき、さらなる効率化が実現できます!
文字だけではわかりずらいので、画像でも解説いたします。
1.Windowsの画面左下にあるWindowsマーク(田)をクリック
2.出てきた画面上の検索窓に「コマンドプロンプト」と入力
3.出てきた「コマンドプロンプト」をクリックすると、黒い画面が起動
4.カーソルが点滅し始めたら、「pip install xlwings」と入力し、「Enterキー」を押す
5.最後の方に「Successfully installed~」と表示されていればインストールは完了
※バージョンは異なる場合があります
著者と同じ「Anaconda」の「Jupyter Lab」を使用されている方は、
コードを入力する画面で「!pip install xlwings」と入力し実行してください。
xlwingsのインストールができない場合
xlwingsのインストールができない場合は、pipのバージョンが古い可能性があります。
「ERROR: To modify pip, please run the following command:」
というエラーが出た場合は、その下にあるコマンドをコマンドプロンプトに入力して、
「Enterキー」を押してみてください。
おそらく下記のようなコマンドが表示されていると思います。
C:\(割愛:Pythonが入っているフォルダのアドレス)\python.exe -m pip install –upgrade pip
「Successfully installed~」と表示されたら、再度「xlwings」のインストールを行ってみてください。
xlwingsとは
前項で「xlwings」のインストール方法を解説いたしました。
xlwingsを使い始める前に、xlwingsとは何なのか、何ができるのかを簡単に解説いたします。
「xlwings」とは、エクセルを実際に操作できる「Pythonのライブラリ」です。
なにやらよくわからない言葉がいろいろ出てきましたね…。
まず「ライブラリ」とは何でしょうか?
「ライブラリ」は本棚のようなもので、「xlwings」の他にも「pandas」や「openpyxl」など、
いろいろな本が並んでいるとイメージしてください。
前項で解説した「xlwingsのインストール」は、
【書店で「xlwings」の本を購入して、家の本棚(ライブラリ)に入れた】
といえばわかりやすいでしょうか。いつでも見ることができる状態にしたということです。
次に「実際に操作」についてですが、
手動操作を自動で行うようなものだと思ってください。
私たちがエクセルを手動で操作する際、
「ファイルを開く」「データを書き込む」「保存する」「ファイルを閉じる」というような動作が発生します。
しかしながら、openpyxlでは実際にファイルを開いたりしているわけではありません。
(エクセルのウインドウが起動していませんよね)
xlwingsでは、実際に「ファイルを開く」「保存する」などの行為を自動でできるというわけです。
では、この「xlwings」を使って何ができるのかを次項で解説いたします。
openpyxlについては下記記事をご参考ください。
xlwingsでできること
前項でも少し触れましたが、代表的なのは下記のとおりです。
- ファイルを開く
- ファイルの編集
- ファイルの保存
- ファイルを閉じる
しかしながら、上記の作業はopenpyxlでもできます。
ではxlwingsを使うメリットはどこにあるのでしょうか?
次項で解説いたします。
xlwingsを使うメリット
xlwingsの最大の特長は、「対象のファイルを開いたままでも編集できる」というところです。
「openpyxl」では、開いたままのファイルを編集しようとすると、エラーが発生して作業が中断してしまいます。
しかし「xlwings」は、開いたままのファイルを手動よりも早く編集することができます。
「openpyxl」で「Permissionエラー」がよく出る人は、「xlwings」を少しずつ取り入れることをおすすめします。
メリットは他にもあります。
例えは、下記のような作業をすることになったとします。
- openpyxlでエクセル編集[1]
- ファイルの中身を確認・手動で入力
- openpyxlでエクセル編集[2]
全てopenpyxlで自動化させたいところですが、やはり手動での操作も完全に無くすことはできません。
上記の例では、手順「2」の前後に手動で「ファイルを開く」「ファイルを保存」「ファイルを閉じる」といった作業が発生します。
まあ当然ですよね。
しかもこの作業がずっと続く場合、ファイルを開いたり閉じたり、かなりめんどうではありませんか?
違うファイルを開いたり、保存し忘れることもあるかもしれません。
ところがxlwingsを導入することで、この作業を自動化できます。
openpyxlプログラムの前後に「xlwings」を追加するだけです。
- openpyxlでエクセル編集[1](xlwingsでファイルを開く)
- ファイルの中身を確認・手動で入力
- (xlwingsでファイルを保存、閉じる)openpyxlでエクセル編集[2]
手動操作は「2」だけになりました。
xlwingsのメリットがわかったところで、今度は使い方を見ていきましょう。
xlwingsの使い方
xlwingsの処理は、予想以上に時間がかかることがあります。
プログラムの最後に「print(‘実行完了’)」などを追記し、完了したのを確認してから結果を見ましょう。
まずは簡単な使い方を学習しましょう。
今回紹介するのは下記の3つです。
- ファイルを開く
- ファイルを保存する
- ファイルを閉じる
xlwingsで実際にファイルを開く
まず初めに、xlwingsで実際にファイルを開いてみましょう。簡単にできます。
import xlwings
workbook = xlwings.Book('input.xlsx')
コードはこれだけです。
コード内容を要約すると以下のとおりとなります。
- xlwingsのインポート
- エクセルファイルを開く
一つ一つ解説いたします。
xlwingsのインポート
import xlwings
上記一文にて、「xlwings」をインポートすることができます。
「インポート」とは何でしょうか?
前項で「インストール」は「書店で買ってきたxlwingsの本を家の本棚に置く」ようなものとお伝えしました。
「インポート」も例えるなら、「家の本棚からxlwingsの本を出して、机の上で開く」ようなものでしょうか。
「国語辞典」など、本棚にあるだけでは意味がなく、中身を見ることができません。
xlwingsを使うために、机の上で開いたというふうに思ってください。
「xlwings」を使う際は、必ずこの「インポート」が必要になります。
インポートが終わったら、次にエクセルファイルを開きます。
エクセルファイルを開く
workbook = xlwings.Book('input.xlsx')
上記一文にて、エクセルファイルを開くことができます。
<テンプレ>
【 変数 = xlwings.Book(‘ファイル名’) 】
もっと詳細な解説は下記記事で行っておりますので、ご参考ください。
では、実行してみましょう。
実際にエクセルファイルを開くことができました。
xlwingsで実際にファイルを保存して閉じる
今度は、現在開いているエクセルファイルを保存して閉じてみましょう。
import xlwings
workbook = xlwings.books.active
workbook.save()
workbook.close()
2行目で、「アクティブ」なエクセルブックを取得し、
3行目で保存、4行目で閉じています。
<テンプレ>
【 開いたブックが入った変数.save() 】
【 開いたブックが入った変数.close() 】
これで「開く」「保存」「閉じる」が自動化できました。
もっと詳細な解説は下記記事で行っておりますので、ご参考ください。
注意点やエラー対処法も紹介しております。
空のブックが残る場合の対処法
作業環境によっては、空のブック(Book1)が閉じられずに残る場合があります。
このまま作業を続けると、空のブックがどんどん増えていく可能性があるため対処が必要です。
対処法としましては、何か別のエクセルを開いたままにしておきましょう。
そうすることで、空のブックは残りません。
作業を始める前に、適当なエクセルファイルをひとつ開いておくことをおすすめします。
最後に
xlwingsのインストール方法や使い方を解説いたしました。
xlwingsを使うことで、業務効率がワンランク上がります。
openpyxlとうまく絡めて、さらなる時短を目指しましょう!
当ブログでは、Python関する情報を配信しております。
xlwingsに関する有益情報も公開しておりますので、他の記事も読んでいってください。
挫折せずにPythonを独学で学習する方法は特におすすめです。
最後までお読みいただき、ありがとうございました。がんばってください!