13
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

openpyxlでセルの値(数式ではなく計算結果)を取得する方法

Last updated at Posted at 2023-05-23

openpyxlでセルの値を取得する際にハマったことについて簡単にまとめてみました。

  • 動作環境
    • Windows 10
    • python 3.9.13
    • openpyxl 3.1.2

やりたいこと

  • openpyxlでxlsxファイルのセルの値(数式ではなく計算結果)を取得したい

例えば、以下のようなシートがあって、A1とB1に数値が入っていて、C1ではSUM関数を使ってA1とB1の合計を出力するとします。
image.png

ハマったこと

通常以下のようにworkbookとsheetを読み込みます。

import openpyxl

wb = openpyxl.load_workbook("sample.xlsx")
sheet1 = wb["Sheet1"]

以下のようにC1セルの値を取得できます。ただこれだとセルに数式が入っている場合、計算結果ではなくそのまま数式を取得することになります。

c1 = sheet1["C1"].value
print(c1)
=SUM(A1, B1)

解決方法

計算結果のみを取得したい場合は、workbook読み込む際にdata_only=Trueと指定します。(デフォルトではFalse)

wb = openpyxl.load_workbook("sample.xlsx", data_only=True)

もう一度c1の値(計算結果)を取得してみます。

import openpyxl

wb = openpyxl.load_workbook("sample.xlsx", data_only=True)
sheet1 = wb["Sheet1"]

c1 = sheet1["C1"].value
print(c1)
2

これで数式ではなく計算結果を取得できました。

参考

13
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?