Python Excel(エクセル)の組み合わせで業務の効率化! 絶対に覚えよう

Python

Pythonを使用することでExcel(エクセル)を簡単に読み書きすることができます。 実際にPythonを業務で使用するときに、効率化が最もわかりやすいのがExcelの操作になるので、その基本的な操作やライブラリをインストールする方法を紹介します。

Excelの操作方法

PythonでExcel(エクセル)を操作するには大きく分けると2つの方法があります。1つめの方法はExcelのファイルを直接操作してデータの読み書きを行う方法です。もう1つはPythonからWindowsを操作してExcelを起動させて、その上でPythonからの指令でデータを読み書きする方法で、イメージとしては、マウスやキーボードの操作を人間の代わりにPythonが自動操作する方法です。
前者の場合はパソコンにExcelがインストールされている必要はありません。後者の場合はパソコンにExcelがインストールされている必要があります。
どちらを使用するにしても、Pythonに新たにExcelを操作するためのライブラリのインストールが必要です。

Excelライブラリのインストール

まずはライブラリをインストールする必要があります。ライブラリは先述のように操作する方法に応じてインストールします。一般的にPythonでExcel(エクセル)操作する場合は、ファイルを直接操作する事を意味するので、「openpyxl」をインストールします。「opnepyxl」を使用するメリットとしては、表中にも記載のようにExcelがインストールされている必要がないことです。業務に使用しているPCには一般的にエクセルがインストールされている事が多いと思いますが、安価なPCやRaspberry Pi等のLinux系のエッジ端末(5000円程度)を使用したい場合は、「openpyxl」を使用します。デメリットとしては、Excelの動作を完全にカバーしているわけではないので、一部には実現できない機能があります。しかし、一般的な機能は十分カバーしているので、基本は「openpyxl」を使用して、どうしてもカバーできない部分は「pywin32」を使用します。

操作方法ライブラリ名Excel(エクセル)要否
ファイルを直接読み書きするopenpyxl不要
Windowsのを操作してExcelを操作するpywin32(win32com)必要
エクセルライブラリw

Windowsでライブラリをインストールするには、メニューからw欄で出てくる「Windows PowerShell」を起動します。

Windows PowerShellを起動したら、次のコマンドを入力してリターンキーで実行します。「pip install -U ライブラリ名」コマンドは、Pythonのライブラリの最新版をインストールするコマンドです。

pip install -U openpyxl

いろいろなメッセージが表示されますが、最後に「Successfully installed openpyxl-*.*.**」と表示されればインストール成功です。

正しくインストールされたか確認してみましょう。次のコマンドをWindows PowerShellで、入力と実行をするとインストールしたバージョンが表示されます。

pip show openpyxl

下図の場合は、バージョン3.0.10がインストールされているのが確認できます。

Excelファイルの作成と書き込み

それではPythonでExcel(エクセル)ファイルを作成してみましょう。次のコードを入力して実行すると、フォルダ内にExcelファイルが作成され、ファイルを開いてみると B2 セルに「テスト書き込み」という文字が書き込まれています。

import openpyxl as xls
book = xls.Workbook()
sheet = book.active
sheet["B2"] = "テスト書き込み"
book.save("testbook.xlsx")

作成されたエクセルファイルを確認すると、左記のようになっていると思います。

1行目の「import openpyxl as xls」は、ライブラリをインポートして「xls」という名称で使用できるようにしています。
2行目の「book = xls.Workbook()」は「book」という名前で、エクセルの新規ブックを作成しています。
3行目の「sheet = book.active」は、これから操作しようとしているシートを取得します。具体的にはファイルを開いてすぐに表示されるシート=アクティブなシートを取得しています。
4行目の「sheet[“B2”] = “テスト書き込み”」は、取得したシートのB2セルに文字を書き込んでいます。
5行目の「book.save(“testbook.xlsx”)」は、作成したエクセルブックを「testbook.xlsx」という名前で保存しています。

ポイント
【まとめ】
ライブラリのインポート
import openpyxl as xls

新規ブックの作成
book = xls.Workbook()

シートの取得
sheet = book.active

セルへの書き込み
sheet["B2"] = "テスト書き込み"

ファイルの保存
book.save("ファイル名.xlsx")

Excelファイルの読み込み

次にエクセルファイルを読み込んでみましょう。次のコードを入力して実行すると、「テスト書き込み」という文字列が表示されます。(読み込むファイルは、上で作成した testbook.xlsx です)

import openpyxl as xls
book = xls.load_workbook("testbook.xlsx")
sheet = book.worksheets[0]
cell = sheet["B2"]
print(cell.value)
テスト書き込み

1行目の「import openpyxl as xls」は、ライブラリをインポートして「xls」という名称で使用できるようにしています。
2行目の「book = xls.load_workbook(“testbook.xlsx”)」は、「testbook.xlsx」という名前のエクセルファイルを読み込んでいます。
3行目の「sheet = book.worksheets[0]」は、これから操作するシートを指定しています。具体的には先頭のシートを指定しています。番号はシートを左から数えて何番目かを指定し、最も左の番号は「0」になります。
4行目の「cell = sheet[“B2”]」は、B2セルをオブジェクトとして取得しています。
5行目の「print(cell.value)」は、B2セルの値を表示させています。

ポイント
【まとめ】
ライブラリのインポート
import openpyxl as xls

ファイルの読み込み
book = xls.load_workbook("ファイル名.xlsx")

シートの取得(いずれの方法でもOK)
sheet = book.active
sheet = book.worksheets[0]
sheet = book["シート名"]

セルの取得
cell = sheet["B2"]

セルの値の取得(と表示)
print(cell.value)