Pythonで既存のExcelブックを開く・読み込み方法(WIndows相対パス・絶対パス)

AIや機械学習での多く利用されているPythonには多数のライブラリが用意されており、Excelなどの表計算ブックの操作も可能です。

Pythonのエクセル用ライブラリで最も有名なopenpyxlを使い、既存のExcelファイルをPythonで開く方法を解説します。

WindowsでのPython利用で相対パスと絶対パスの2種類のエクセルブック読み込み方法も紹介します。

Pythonでエクセルを扱うopenpyxlライブラリ

Pythonは学習しやすさやAIなどのライブラリが充実していて、近年人気のプログラミング言語です。

機械学習や自然言語処理などのAI分野でのPythonが有名ですが、表計算ソフトであるExcelのワークブックもプログラミングで操作できるようになっています。

エクセルファイルの様々な集計やデータ処理をPythonによって自動化が実現でき、業務改善に活用可能です。

Pythonにはエクセルファイルを操作するライブラリがいくつかあり、その中でもopenpyxlが最もよく使われています。

openpyxlを使えば、エクセルのファイルを作成したり、すでに作成済みのExcelブックを読み込むことができます。

openpyxlライブラリのインストール方法

Pythonでエクセルを操作するためには、openpyxlライブラリをインストールしておく必要があります。

※紹介する方法はWindowsOS環境で、事前にPythonのインストールが必須です。

openpyxlライブラリを利用するには、Pythonのライブラリをインストールするpipコマンドを使用します。

Pythonでエクセル操作ができるopenpyxlライブラリはpipコマンドを使い「pip install openpyxl」でインストール

pipコマンドでopenpyxlライブラリをインストールすると、Pythonのプログラムでopenpyxlが利用できるようになります。

Pythonで既存のエクセルファイルを読み込むサンプルコード

実際にPythonで作成済みのエクセルファイルを読み込み、セルに格納されたデータを表示するサンプルコードを解説します。

Pythonのopenpyxlライブラリを利用して作成されたエクセルブック

上の「sample.xlsx」のエクセルファイルをpythonで読み込んでみます。

#openpyxlライブラリのインポート
import openpyxl

#すでに存在するExcelワークブックを読み込む
wb = openpyxl.load_workbook("sample.xlsx")
#ワークブック内のアクティブなシートを取得
ws = wb.active
#シート内のA1セルを読み込み、値を表示
print(ws["A1"].value)
Pythonのopenpyxlライブラリを使い、既存のエクセルファイル(ワークブック)を読み込み、セルの値を表示するサンプルコード

まず、事前にpipコマンドでインストールしたopenpyxlライブラリをインポートします。

続いてopenpyxl.load_workbook()メソッドを実行することで、引数に指定したファイル名のエクセルワークブックを読み込むことができます。

その後、アクティブなシートを取得し、A1セルにある値をprint出力します。

Pythonのopenpyxlライブラリを使い、既存のエクセルファイル(ワークブック)を読み込み、セルの値を表示するサンプルコードをpythonコマンドで実行した結果、セルの値をpirnt出力

サンプルコードを実行すると、きちんとsample.xlsxのA1セルに入力された文字列がコマンドプロンプトに表示されます。

絶対パス指定でExcelブックを読み込み(WindowsOS)

先程のExcelワークブックの読み込みはpythonファイルがある同じフォルダ(ディレクトリ)にあるファイルだったため、ファイル名を指定して読み込めました。

こうしたファイル名の指定方法は相対パスによる指定です。

そのほかにエクセルブックの読み込み方法として「絶対パス」による引数指定があります。

絶対パスによるopenpyxl.load_workbookメソッドの引数指定は以下のようにコードを書き換えます。

#openpyxlライブラリのインポート
import openpyxl

#すでに存在するExcelワークブックを読み込む(絶対パス)
wb = openpyxl.load_workbook("C:/Users/yamamoto/Desktop/programming/python_excel/sample.xlsx")
#ワークブック内のアクティブなシートを取得
ws = wb.active
#シート内のA1セルを読み込み、値を表示
print(ws["A1"].value)
Pythonのopenpyxlライブラリを使い、既存のエクセルファイル(ワークブック)を絶対パスで指定して読み込み、セルの値を表示するサンプルコード(Windows)

先程のpythonコードと同じようにエクセルワークブックを読み込んでpriint表示できます。

注意点としては、Windowsのパス指定は「C:\Users\name」ですが、pythonで記述する際は「\→/」に書き換えてください。

相対パス指定で別フォルダのExcelブックを読み込み(WindowsOS)

続いて相対パス指定で、pythonファイルと別のフォルダ(ディレクトリ)にあるExcelブックを読み込んでみます。

excelフォルダを作成してその配下にsample2.xlsxのエクセルブックを作成します。

pythonファイルとは別のディレクトリに作成したエクセルファイル

相対パスでは、現在のディレクトリ位置を「.」で表現し、そこからの位置を指定します。

#openpyxlライブラリのインポート
import openpyxl

#すでに存在するExcelワークブックを読み込む(相対パス)
wb = openpyxl.load_workbook("./excel/sample2.xlsx")
#ワークブック内のアクティブなシートを取得
ws = wb.active
#シート内のA1セルを読み込み、値を表示
print(ws["A1"].value)
Pythonのopenpyxlライブラリを使い、既存の別フォルダ(ディレクトリ)にあるエクセルファイル(ワークブック)を相対パスで指定して読み込み、セルの値を表示するサンプルコード(Windows)

pythonコードを実行すると、sample2.xlsxが読み込まれ、print出力される文字列が変化しています。

Pythonのopenpyxlライブラリを使い、既存の別フォルダ(ディレクトリ)にあるエクセルファイル(ワークブック)を相対パスで指定して読み込み、セルの値を表示するサンプルコードを実行した結果、セルの値がprint出力成功

相対パスによるエクセルファイル指定はよく使われるので、load_workbookメソッドの引数指定は覚えておきましょう。

PythonでExcelブックを新規作成するには

今回はすでに作成されているExcelブックをPythonのopenpyxlライブラリを使って読み込みました。

既存のワークブックを開く以外に、openpyxlでエクセルファイルを新規作成もできます。

※Pythonのopenpyxlライブラリでエクセルを新規作成する方法は以下の記事で解説しています。

まとめ・終わりに

今回、Pythonのopenpyxlライブラリを使い、既存のエクセルのワークブックを読み込む方法を紹介しました。

openpyxl.load_workbookメソッドでExcelブックのファイル名を指定することで読み込むことができます。

エクセルブックの引数指定方法は相対パスと絶対パスの2種類があります。

ただ、Windowsの場合、パス指定時に「\」を使うとエラーするので、「/」に置き換えるのが注意点です。

既存のエクセルファイルを読み込むことができれば、pythonによってエクセルデータをアップデートしていくことができます。

Pythonを活用してエクセル操作する上でワークブックの読み込みは基本となるので、覚えておきましょう。