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のセル範囲を指定して取得する方法でした。

コメント