openpyxl

インストール

pip install openpyxl

インポート

import openpyxl

ファイル操作

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

// ワークブックの読込
wb = openpyxl.load_workbook("xxx.xlsx")

// XLSMの読み込み(keep_vbaしないとPython実行後にファイルが開けなくなる)
wb = openpyxl.load_workbook("xxx.xlsm", keep_vba=True)

// 数式ではなくデータのみを読み込む場合
wb = openpyxl.load_workbook("xxx.xlsx", data_only=True)

// ワークブックの上書き保存(ワークブックを保存しないとそれまでのセル入力などが反映されない)
wb.save("xxx.xlsx") <---同じ名前で保存

シートの操作

// シートの新規作成
ws = wb.create_sheet(title="タイトル名")

// シートオブジェクトの取得
ws = wb["シート名"]  または ws = wb.worksheets[0]

// シート名の取得(実行すると、[Sheet1, Sheet2, …]のような結果が返ってくる)
wb.sheetnames

// シートの削除
wb.remove(ws)

セルの操作

// セルの取得
cell = ws["A1"]  または cell = ws.cell(1,1)

// セルの入力
ws["A1"] = "Hello"

// 合計値の計算
ws["A1"] = "=sum(B1:B3)"

行・列の操作

ws.insert_rows(2)

ws.insert_cols(2

ws.delete_rows(2)

ws.delete_cols(2)

last_row = ws.max_row

last_column = ws.max_column

for

// イテレータを使った繰り返し(行ごと)
for row in ws.iter_rows(min_row=1, min_col=1, max_row=8, max_col=3) :
  for cell in row :
    cell.value = 5

// イテレータを使った繰り返し(列ごと)
for col in ws.iter_cols(min_row=1, min_colr=1, max_row=8, max_colr=3) :
  for cell in col :
    cell.value = 5


// Rangeを使った繰り返し
for y in range(2,5):
  for x in range(10,20) :
    ws.cell(row=y, col=x).value = 10


// 文字列の中に変数をいれる場合
for i in range(1,100) :
  ws.cell(i, 1) = f"{i}番目の選手"