MENU

【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を読み込むためのコードを記載しておきましょう。

# ============================================
# ライブラリ
# ============================================

import openpyxl

# ============================================
# Excelファイルの設定
# ============================================

FileName  = "......"       #【要編集】Excelファイル名を入力
Extension = ".xlsx"        # 拡張子
Sheet_Num = 0              # 更新するExcelワークシート番号(0を指定した場合sheet1を指定)

# ============================================
# Excelファイル読込
# ============================================

ExcelFileName   = FileName + Extension                   # Excelファイル
workbook        = openpyxl.load_workbook(ExcelFileName)  # ワークブック読込
Selectworksheet = workbook.sheetnames[Sheet_Num]         # ワークシート名を取得
worksheet       = workbook[Selectworksheet]              # ワークシートオブジェクトを取得

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

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

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

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

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

print(workbook.sheetnames)

# 出力結果
# ["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

# 出力結果
# "C2"

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

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

worksheet["B3"].row

# 出力結果
# 3

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

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とは?・実現できること

最後に

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

本記事をシェア!
目次