MENU

Python学習 Exeleの操作2〜Excelシートからセルを取得する(openpyxl)〜

前回は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は列を表します。

rowcolumnは、セルがどこにあるのかを知りたいときに利用します。

例えば大量のデータを読み込んでいるとき、

「今読み込んでいるセルは何行目なのか」「何列目なのか」を確認したい場面で役立ちます。


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操作の幅が大きく広がります。ような気がします笑

次回は、列の文字と番号を変換、複数の行と列を取得することを学びます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

FIREを目指しながら、投資・プログラミング・家庭菜園・資格勉強に取り組んでいます。試行錯誤しながら積み上げる日々を記録するブログです。

コメント

コメントする

目次