【Python×Excel操作】エクセルシート情報をPythonで取得するコード解説・できること8選|作業自動化

こんにちは、Kosei(@kay_diacc2)です!

PythonでExcelファイルからどうやって情報を取得するの?」Excel操作の自動化を検討するにあたり、Excelファイルから欲しいデータを取得する技術は非常に重要と言えます。本記事ではこの疑問に答えます。

目次

Pythonによるエクセル情報取得方法の概要

まず結論として「Excelシートのセル情報を自由に編集できるようになれば、Excel操作の自動化を柔軟に実現できる」と言えます。そのためには「PythonでExcel情報を取得する方法の理解」が欠かせません。なぜなら、エクセルシートの編集手順はプログラミング視点だと以下のように実行されるためです。

  1. Excelファイル・シートを作成
  2. Excelファイル・シート情報を読込
  3. 編集したいExcel情報(シートやセル)を取得
  4. Excel情報を編集

本記事では、上記(3)について深く学習していきましょう!

事前準備:エクセルファイルの読込

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コード、グレー枠に出力イメージを表現して解説していきます。

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

Excel Workook内のシート名取得は、下記のように記載します。

workbook.get_sheet_names()

# 出力結果
# ["Sheet1"]

セル値取得

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

worksheet["B3"].value

# 出力結果
# "B3セルの値"
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シート上で編集されたセルの末端が知りたい場合、編集セルの行列番号の最大値を出力することで確認できます。

編集した行の最大値

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"

Excel×Pythonの自動化手法まとめ

本記事をご覧いただきありがとうございました!本記事ではExcel操作の自動化に役立つノウハウを多数配信しています。これからExcel作業の自動化に取り組みたい方向けには下記の記事が参考になるかと思います。是非ご覧ください!

PythonによるExcel自動操作を学習する上でのおすすめ教材もご紹介しています。

最後に

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

本記事をシェア!
URLをコピーする
URLをコピーしました!
目次
閉じる