・環境
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) という数式がある場合、数式そのものではなく、その計算結果が取得されます
コメント