openpyxlでエクセルファイルを編集しているんだけど、
下図のA1セルに入っている「2」を取得したい…。
でもなぜか数式の「=1+1」が取得されてしまう…。
「2」を取得する方法は無いの?
なるほど…。
では今回は、「openpyxlで数式ではなく値のみ取得する方法」を
できるだけわかりやすく解説いたします。
openpyxlで数式ではなく値のみ取得する方法
「data_only」を使います。まずは全コードと実行結果をお見せします。
解説は後ほど行います。
全コード
import openpyxl
wb = openpyxl.load_workbook('C:/Utatane/input.xlsx', data_only=True)
ws = wb['Sheet1']
cell = ws['A1'].value
print(cell)
wb = openpyxl.load_workbook('C:/Utatane/input.xlsx', data_only=True)
実行結果
事前準備
- openpyxlのインストール
既存のエクセルファイルを編集するには「openpyxl」のインストールが必要です。
openpyxlのインストール方法
openpyxlを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install openpyxl
※openpyxlを使用したことがある場合は、このインストール作業は不要です。
インストールに関する詳細や、インストールができなかった場合の対処法は下記記事で解説しております。
また、既存ファイルを開いて保存する方法など、基本解説も行っておりますのでご参考ください。
解説
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
import openpyxl
wb = openpyxl.load_workbook('C:/Utatane/input.xlsx', data_only=True)
ws = wb['Sheet1']
cell = ws['A1'].value
print(cell)
今回のコードはとてもシンプルで、以下のような流れです。
- インポート
- ブックを取得(数式を値に変換)
- シートを取得
- セルの値を取得
- 取得した値を表示
注目すべきは2行目の「数式を値に変換」というところです。
コードでいうと「data_only=True」です。
これを記述することで、シート内の数式を値に変換することができます。
1~3行目の基礎的な解説は、「インストール方法」の記事をご参考ください。
4行目でセルの値を取得しています。
cell = ws['A1'].value
2行目で「data_only=True」を記述していなければ、「cell」には「=1+1」が入ります。
今回は、「data_only=True」で数式を値に変換済ですので、「cell」には「2」が入るわけです。
「.value」を記述しないと、「cell」には「シート名」や「セル名」など値以外の情報も入ります。
「.value」を記述することで、値のみを「cell」に代入しています。
しかしながら、「.value」を記述しても、2行目で「data_only=True」を記述していないと、やはり「=1+1」が取得されますので、ご注意ください。
うまく動作しない場合の対処法
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
Permission denied: ○○
操作しようとしているファイルにアクセスできないというエラーです。
「ファイルを開いている状態なので編集できない」と言っていることが多いので、開いていれば閉じて再度トライしましょう。
詳しい解説は、下記記事をご参考ください。
Worksheet ○○ does not exist
「指定したシートがありません」というエラーです。
指定のシート名が間違っていないか、「sheet1」など先頭が小文字になっていないか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
openpyxlで数式ではなく値のみ取得する方法を解説いたしました。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
挫折せずにPythonを独学で学習する方法は特におすすめです。
最後までお読みいただき、ありがとうございました。がんばってください!