【Python×Excel】エクセルシート情報の取得方法・できること8選|データ抽出を応用した操作自動化

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ!
  • PythonとExcelファイルを連携させ、シート内の情報を自動取得できるようになりたい。
  • PythonでExcelファイルからデータ抽出し、他タスクに応用したい。
目次

【Python × Excel】エクセルシートからデータ抽出・できること

Pythonを活用するとExcelシートの作成や編集が自由にできるようになります。Excelシートを自由に編集できるようになれば、Excel操作自動化の道に一歩近づきますね!

Pythonを活用したExcel操作は、具体的に次のようなプロセスで実行されます。

  1. Excelファイル・シートを作成
  2. Excelファイル・シート情報を読込
  3. 編集したいExcelファイルのシート・セル情報を取得
  4. 前述で取得したExcel情報に対して編集(更新)操作を実行

Excelシートを編集する過程に(3)PythonでExcel情報を取得するというタスクがありますね。

Pythonでのエクセル操作では、このデータ取得が非常に重要な役割を果たしてきます。本記事では、上記(3)について深く解説していきます!

【参考】Python × Excelによる作業効率化・おすすめ学習法

【事前準備】Pythonでエクセルファイルを読込

PythonでExcelファイル情報を取得するには、Excelファイルの事前読込が必要です。

まず、同じディレクトリにPythonスクリプトとExcelファイルを用意します。Pythonスクリプトには下記のようにExcelを読み込むためのコードを記載しておきましょう。

""" (準備)Excelファイル情報 """
#【要編集!!】Excelファイル名を指定
FileName = "エクセルファイル名を入力!" 
#拡張子
Extension = ".xlsx" 
#更新するExcelシート番号(左から0,1,2)
Sheet_Num = 0



""" Excelファイル読込(以下編集不要) """
import openpyxl
#Excelファイル
ExcelFileName = FileName + Extension
#ワークブック読込
workbook = openpyxl.load_workbook(ExcelFileName)
#ワークシート読込
Selectworksheet = workbook.get_sheet_names()[Sheet_Num]
worksheet = workbook.get_sheet_by_name(Selectworksheet)

事前準備が整いました!Excelファイル情報取得操作を学習していきましょう。

PythonによるExcelファイル情報の抽出・できること8選

PythonでできるExcel情報の抽出技法には、「シート名を取得」「セルの値を取得」「セルの位置情報を取得」「セル情報の変換」という代表的な4つがあります。後述ではこれらを詳細に紐解き、プログラムで実行する8つの方法を解説していきます。

ワークシート(Worksheet)名を取得

事前準備時に指定したExcelワークブックworkbook = openpyxl.load_workbook(ExcelFileName)に対してget_sheet_names()メソッドを活用すると、Excelファイルのシート名が取得できます。

workbook.get_sheet_names()

# 出力結果
# ["Sheet1"]

セル値取得

セル情報の取得方法は下記2パターンがあります。例えば、B3セルの値を取得したい場合、下記のように記載します。

方法(1)セルを直接指定で編集

worksheet["B3"].value

# 出力結果
# "B3セルの値"

方法(2)セル位置の行番号(row)と列番号(column)を指定して編集

worksheet.cell(row=2,column=3).value

# 出力結果
# "B3セルの値"

セル値取得(範囲指定)

セルの範囲を指定し情報取得する場合は、下記のように記載します。

worksheet["B2:C5"]

# 出力結果
# ((<Cell 'sheet1'.B2>, <Cell 'sheet1'.C2>),
#  (<MergedCell 'sheet1'.B3>, <Cell 'sheet1'.C3>),
#  (<MergedCell 'sheet1'.B4>, <Cell 'sheet1'.C4>),
#  (<MergedCell 'sheet1'.B5>, <Cell 'sheet1'.C5>))

セル位置情報取得

セルの位置情報を取得する場合、coordinate()メソッドを用いて記載します。

worksheet.cell(row=2,column=3).coordinate

# 出力結果
# "B3"

セル位置情報取得|行・列

セルの位置情報として「行番号」を取得

worksheet["B3"].row

# 出力結果
# 2

セルの位置情報として「列番号」を取得

worksheet["B3"].column

# 出力結果
# 3

セル位置情報取得|編集したセル(行・列)の最大位置を特定

Excelシート上で編集されたセルの末端が知りたい場合、編集セルの行列番号の最大値を出力できるmax_rowメソッドを活用することで確認できます。

編集した行の最大値

worksheet.max_row

# 出力例
# 100

編集した列の最大値

worksheet.max_column

# 出力例
# 200

セル情報の変換|アルファベットを列番号に変換

特定の列番号を知りたい場合、アルファベットを指定することで確認できます。

from openpyxl.utils import column_index_from_string
column_index_from_string("B")

# 出力結果
# 2

セル情報の変換|列の番号をアルファベットに変換

特定の列番号のアルファベットを知りたい場合、列番号を指定して確認できます。

from openpyxl.utils import get_column_letter
get_column_letter(2)

# 出力結果
# "B"

【参考】Pythonで面倒な作業を自動化!手法一挙公開中!

当サイトでは日々面倒な作業をPythonで自動化する方法を多数配信しております。日々の作業が飛躍的効率化できること間違いなしですので、以下気になった記事があれば併せてご覧ください。

【面倒なタスクをPythonで解決!】作業効率化の人気記事一覧




【参考】Pythonとは?・実現できること

最後に

この記事が気に入ったら
フォローしてね!

本記事をシェア!
目次