PythonのライブラリであるOpenpyxlを使用してExcelのセルの値を取得する方法について説明します。特に、数式が含まれているセルから計算結果の値を取得する方法に焦点を当てます。
Openpyxlとは
OpenpyxlはPythonでExcel 2010 xlsx/xlsmファイルを読み書きするためのライブラリです。このライブラリを使用すると、PythonプログラムからExcelファイルを操作できます。
セルの値を取得する
Openpyxlを使用してセルの値を取得する基本的な方法は以下の通りです。
import openpyxl
# ワークブックを開く
wb = openpyxl.load_workbook('sample.xlsx')
# ワークシートを選択
sheet = wb['Sheet1']
# セルの値を取得
cell_value = sheet['A1'].value
このコードは、指定したワークシートの指定したセルの値を取得します。
数式のあるセルから値を取得する
しかし、セルが数式を含んでいる場合、上記のコードでは数式そのものが返されます。数式の計算結果の値を取得するには、ワークブックを開く際にdata_only=True
を指定します。
import openpyxl
# ワークブックを開く(数式の計算結果を取得)
wb = openpyxl.load_workbook('sample.xlsx', data_only=True)
# ワークシートを選択
sheet = wb['Sheet1']
# セルの値を取得
cell_value = sheet['A1'].value
このコードは、数式の計算結果の値を取得します。
注意点
ただし、data_only=True
を指定した場合でも、数式の計算結果がExcelによって保存されていない場合(例えば、新しく数式を追加して保存せずに閉じた場合など)は、値ではなくNoneが返されます。そのため、数式の計算結果を正確に取得するには、Excelで一度計算を行って保存する必要があります。
以上がPythonとOpenpyxlを使用してExcelのセルから値を取得する方法です。特に数式が含まれているセルから値を取得する際の注意点について説明しました。この情報がPythonとOpenpyxlの使用に役立つことを願っています。