前回はExcelからワークブックやシートを読み込むことができました。

今回はExcelシート内のセルを取得します。
Excelシートからセルを取得する
import openpyxl
wb=openpyxl.load_workbook('rakuten.xlsx')
Sheet=wb['rakuten'] #ワークブックからシートを取得
a=Sheet['A1'] #シートからセルを取得
print(a)
print(a.value) #セルの値を取得
#出力結果は
<Cell 'rakuten'.A1> #セルの内容を表示
■資産合計欄 #セルの値を表示
シートを取得した後はSheet[]にセルのナンバーを入力することにより、セルを取得することができます。
Cellオブジェクトには、valueという属性があり、セルの値が格納されています。
今回はA1のセルにアクセスし、.valueにより「■資産合計欄」 という文字列を呼び出しています。
a= セルa.value= セルの中身
と覚えておくと理解しやすいです。
セルの位置情報
import openpyxl
wb=openpyxl.load_workbook('rakuten.xlsx')
Sheet=wb['rakuten'] #ワークブックからシートを取得
a=Sheet['A1'] #シートからセルを取得
print(a.row) #セルの行
print(a.column) #セルの列
#出力結果は
1
1
rowは行、columnは列を表します。
rowとcolumnは、セルがどこにあるのかを知りたいときに利用します。
例えば大量のデータを読み込んでいるとき、
「今読み込んでいるセルは何行目なのか」「何列目なのか」を確認したい場面で役立ちます。
print(a.coordinate)
#出力結果は
A1
.coordinate 属性はセルの位置情報を表します。
cell() を使うメリット
print(Sheet.cell(row=1,column=2)) #B列の1行目を指定
#出力結果は
<Cell 'rakuten'.B1>
cell()メソッドにrow(行)とcolumn(列)の値を渡すと、Sheet['B1']と指定するのと同じように「B1」のcellオブジェクトを取得できます。
行番号や列番号を変数で指定できるというメリットがあります。
for i in range(1, 11):
print(Sheet.cell(row=i, column=2).value)
のように繰り返し処理と組み合わせることで、B列のデータをまとめて取得できます。
実際の場面では、こちらの書き方を使う機会も多くあります。
Excelシートからセルを取得する(openpyxl)まとめ
今回は、Excelシートからセルを取得する方法について学びました。
Sheet['A1']を使えば、セルを指定して取得.valueを使うことでセルに入力されている値を取り出す.rowや.column、.coordinateを使うことでセルの位置情報を取得Sheet.cell(row=, column=)を利用すれば行番号・列番号を指定してセルを取得することができる
これらはopenpyxlでExcelを操作する際の基本となる機能です。今後学ぶ「セルへの書き込み」「繰り返し処理で大量のデータを扱う方法」「表の自動作成」などでも頻繁に登場します。
まずは「セルを取得する」「値を取り出す」という流れをしっかり理解しておくことで、PythonによるExcel操作の幅が大きく広がります。ような気がします笑
次回は、列の文字と番号を変換、複数の行と列を取得することを学びます。

コメント