PythonでExcelの使い方についてです。
この記事の内容はコチラです
- PythonからExcelのセルを指定してデータを取得する
- 例えば、「Sheet1」の「A1」~「D10」のデータを取得する
今回は、Excelのセル範囲(数値・記号)を指定してデータを取得する方法を解説します。
Excelのセル範囲を指定して取得する
構文
import openpyxl
# ブックを取得
ブック変数 = openpyxl.load_workbook('ファイル')
# シートを取得
シート変数 = ブック変数['シート']
# セル(記号)を1つずつ取得
for 行変数 in シート変数[開始セル:終了セル]:
for セル変数 in 行変数:
セル変数.value
# セル(記号)を1つずつ取得
for 行変数 in シート変数.iter_rows(min_row=開始行,min_col=開始列,
max_row=終了行,max_col=終了列):
for セル変数 in 行変数:
セル変数.value
PythonでExcel操作をするには、「openPyXl」パッケージが便利です。「openPyXl」を事前にダウンロード・インストールしておく必要があります。
参照:外部パッケージ OpenPyXLをインストールする方法
開始セルと終了セルの範囲を指定したシート変数を行ごとに分解し、それをさらにセルごとに分解して取り出せば、範囲指定したセルからデータを取得することができます。
サンプルデータ
サンプルデータとして、今回はこのようなEXCELデータを使用します。

例1. 指定したセル範囲を取得する(セル記号)
import openpyxl
# ブックを取得
book = openpyxl.load_workbook('C:\\pg\\人口一覧.xlsx')
# シートを取得
sheet = book['Sheet1']
# セルを取得
for rows in sheet['B6':'C8']:
for cell in rows:
print(cell.value)
#[結果] 北海道
#[結果] 2522526
#[結果] 青森県
#[結果] 619836
#[結果] 岩手県
#[結果] 607653
この例では、「Sheet1」の「B6」~「C8」セルのデータをすべて取得しました。
「for rows in sheet[‘B6′:’C8’]:」で1行ごとに取得し、「for cell in rows」で1行をさらに列毎に取得して、セルの値を取得しました。
例2. 指定したセル範囲を取得する(セル数値)
import openpyxl
# ブックを取得
book = openpyxl.load_workbook('C:\\pg\\人口一覧.xlsx')
# シートを取得
sheet = book['Sheet1']
# セルを取得
for rows in sheet.iter_rows(min_row=6, min_col=2, max_row=8, max_col=3):
for cell in rows:
print(cell.value)
#[結果] 北海道
#[結果] 2522526
#[結果] 青森県
#[結果] 619836
#[結果] 岩手県
#[結果] 607653
この例では、例1と同じデータを取得しました。例1がセル記号「B6:C8」だったのに対し、こちらはセルを数値で指定しました。
セルを数値で扱うには「iter_rows」を使います。開始行列・終了行列(min_row・min_col・max_row・max_col)をパラメータにセットします。こちらの方が扱いやすいですね。
これでEXCELの指定した範囲のセルデータを取得することができました。
参照:https://openpyxl.readthedocs.io/en/stable/#
以上、PythonでExcelのセル範囲を指定して取得する方法でした。
● Python初心者におすすめ!
Python学習方法に関する記事です。読まないと損するかも。


コメント