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学習方法に関する記事です。読まないと損するかも。
コメント