こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
- PythonとExcelファイルを連携させ、シート内の情報を自動取得できるようになりたい。
- PythonでExcelファイルからデータ抽出し、他タスクに応用したい。
【Python × Excel】エクセルシートからデータ抽出・できること
Pythonを活用するとExcelシートの作成や編集が自由にできるようになります。Excelシートを自由に編集できるようになれば、Excel操作自動化の道に一歩近づきますね!
Pythonを活用したExcel操作は、具体的に次のようなプロセスで実行されます。
- Excelファイル・シートを作成
- Excelファイル・シート情報を読込
- 編集したいExcelファイルのシート・セル情報を取得
- 前述で取得したExcel情報に対して編集(更新)操作を実行
Excelシートを編集する過程に(3)PythonでExcel情報を取得するというタスクがありますね。
Pythonでのエクセル操作では、このデータ取得が非常に重要な役割を果たしてきます。本記事では、上記(3)について深く解説していきます!
【参考】Python × Excelによる作業効率化・おすすめ学習法
【Excel×Python】作業効率化の学習におすすめな入門本・動画教材8選
「Excel作業をプログラミング言語Pythonを用いて自動化したい!」「どの教材で勉強すれば良いの?」本記事ではこのような疑問にお応えします。
【事前準備】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とは?・実現できること
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら