openpyxl、pandas入門

Python

・環境 

python 3.12.2
openpyxl 3.1.5
pandas 2.2.3

・基本操作、メソッド一覧

openpyxlを使えば、エクセルファイルを操作することが容易になり、多くの自動化作業が可能です

また、スクレイピングして、データをどこかに保存するとするなら

大体エクセル形式にするかCSVが多いと思います

pythonでエクセル形式のファイルを扱うならopenpyxlが一般的かと

さらにpandasというライブラリでデータフレームという二次元データとして扱い、編集していきます

まずはライブラリをインストールします

pip install pandas openpyxl

カレントディレクトリにファイルを新規作成します
ファイル名を指定して保存

import openpyxl

#ワークブックを新規作成
wb = openpyxl.Workbook()

#ファイル名を指定して保存
wb.save('sample.xlsx')

すでにあるファイルを読み込むときはこちら

#カレントディレクトリにある場合
wb = openpyxl.load_workbook('sample.xlsx')

#ファイルパス指定
wb = openpyxl.load_workbook(r"C:\Users\user\Documents\sample.xlsx")

ワークシートを作成 シート名を指定

ws = wb.create_sheet(title='sheet_1')

アクティブシートの選択

active_sheet = wb['sheet_1']

シート名の変更

active_sheet.title = 'another_sheet_1'

ワークシートの削除

wb.remove(ws)

セルの選択

sample_cell = ws["A1"]

セルの値を取得

sample_value = sample_cell.value

セルに値を入力

sample.value = 'abc'

カレントディレクトリにファイルを保存 同じ名前があるなら上書き保存

wb.save('sample.xlsx')

pandasでデータフレームを扱っていきます

from openpyxl import load_workbook
import pandas as pd

# エクセルファイルを読み込む
file_path = r"C:\Users\user\Documents\sample.xlsx"
sheet_name = "sheet_1"

# ワークブックとシートを取得
wb = load_workbook(file_path, data_only=True) #数式が含まれるなら計算結果を取得
ws = wb[sheet_name]

# セルを指定してデータを取得
data = []
for row in ws["B2:J26"]:
    data.append([cell.value for cell in row])

# データフレームに変換
df = pd.DataFrame(data)

print(df)

ワークブックを取得するときにdata_only=True を指定すると、数式が含まれるセルでは、計算済みの値(結果)を取得します
セルに =SUM(A1:A3) という数式がある場合、数式そのものではなく、その計算結果が取得されます

コメント