Jupyter notebook(Python)を使ってみようと思っても慣れていないうちは、どうしても処理に躓いてしまうものです。
例えば、python(openpyxl)にてセルの取得を行うにはどのように処理すればいいのか理解していますか。
ここでは、このopenpyxlにてセルの中身を取得する方法について一つのセルと複数のセルの場合に分けて解説していきます。
Python(openpyxl)にてセルの取得を行う方法
それでは、Pythonのopenpyxlライブラリを用いてセルの中身の情報を取得する方法を確認していきます。以下のエクセルファイルを元に考えましょう。
セルを取得するには、以下のようなサンプルコードを書くといいです。
と書いていきます。これでA3セルの情報を取得できます。
具体的な一連の流れを踏まえたサンプルコードは以下の通りです。
os.chdir(“C:\\sample”)
import openpyxl as px
wb = px.load_workbook(‘sample8.xlsx’)
ws = wb[“Sheet1”]
a=ws[“A3”].value
a
以下でこのコードの意味について詳しく解説していきます。
import os
os.chdir(“C:\\sample”)でカレントディレクトリの移動を行ってます。
さらに
wb = px.load_workbook(‘sample8.xlsx’)
ws = wb[“Sheet1”]
a=ws[“A3”].value
a
にて、openpyxlのインポート、エクセルブックを開き、シートを選ぶ、シート中のセルの情報を取得するという流れを行っています。
行列番号でセルの中身を取得する【python(openpyxl)のセルの情報の取得】
なおopenpyxlでは、A4といった表記ではなく、cell関数を用いることで行列の番号を選び、セルの情報を取得することもできます。
例えばB列(2列目)の3行目を取得したいのであれば
と入れるといいです。
すると以下のようにB3列の情報を取得できました。なお、こちらの表記の方がfor文を活用して複雑なケースでもセル情報を取得できるので、覚えておくといいです。
複数のセルの情報を取得する方法(列や行の取得)【python(opnepyxl)】
それでは引き続き複数のセルの情報を取得する方法を解説していきます。複数セルとしてある行の複数のセルの中身を取得してみます。
この場合には、for文を用いて以下のようにするといいです。
b = ws.cell(row = i, column = 2).value
print(b)
これでは、2列目を指定し、行番号を1~5まで取得するコードとなっています。
すべてをつなげたサンプルコードは以下の通りです。
os.chdir(“C:\\sample”)
import openpyxl as px
wb = px.load_workbook(‘sample8.xlsx’)
ws = wb[“Sheet1”]
for i in range(1,6):
b = ws.cell(row = i, column = 2).value
print(b)
出力結果は以下の通りです。
なお、行方向のセルの中身を取得していくには、
b = ws.cell(row = 3, column = i).value
print(b)
columnの指定を変数にするといいです。
まとめ Python(openpyxl)にてセルの中身を取得する方法(数値や文字等)
ここでは、pythonのopenpyxlにてセルの情報を取得する方法について解説しました。
A3などの直感的にわかる指定ができるだけでなく、cell関数を用い列番号、行番号を指定したセル情報の取得も可能です。
なお、openpyxlにて複数のセルを取得するには、for文を活用するといいです。
pythonのさまざまな扱いに慣れ、効率よく作業を進めていきましょう。
コメント