20232/9/24
pythonでopenpyxlを使ってエクセルファイルを操作する
エクセルファイルで大量のデータを処理したいとき、pythonのopenpyxlを使用して自動化することができます。
本記事では、openpyxlの使用例をまとめています。
- openpyxlについて
- openpyxlのインストール
- エクセルファイルを開く
- データの読み込み
- データの書き込み
- 新規シート作成
- 保存
openpyxlについて
openpyxlは、pythonでエクセルファイルを操作するためのオープンソースライブラリです。
公式ドキュメントはこちらです。
openpyxl
A Python library to read/write Excel 2010 xlsx/xlsm files
ソースコードはこちらです。
openpyxl - GitLab
openpyxl
openpyxlのインストール
以下のコマンドを実行します。
pip install openpyxl
pythonでライブラリをインストールする場合、仮想環境を準備することをお勧めします。
以下で、pipenvを利用した仮想環境の構築方法を紹介しています。
エクセルファイルを開く
エクセルファイルを読み込んで、処理を行うシートを指定します。
# エクセルファイル読み込み
wb = openpyxl.load_workbook("ファイル名.xlsx")
# シートの指定方法は2つある
sheet = wb.worksheets[0] ## indexで指定
sheet = workbook['Sheet1'] ## シート名で指定
データの読み込み
シート指定後、以下で読み込みます。
# セルを指定
value = sheet[A1].value ## セルを指定
value = sheet.cell(row=2, column=2).value ## 行と列を指定
# 1行をリストとして取得
data_column = []
for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, min_col=1, max_col=1):
for cell in row:
data_column.append(cell.value)
データの書き込み
シート指定後、以下で書き込みます。
# セルへの書き込み、3パターンあります
sheet["A1"].value = 1234
sheet.cell(row=1, column=1).value = 1234
sheet.cell(row=1, column=1, value=1234)
新規シート作成
新規シート作成は以下です。
加工したデータを別シートに保存するときなどに使用できます。
# エクセルファイル読み込み
wb = openpyxl.load_workbook("ファイル名.xlsx")
# 新規シート作成
new_sheet = wb.create_sheet("新規シート名")
ファイル保存
以下で処理したシートの保存ができます。
上書き保存は、既存のファイルと同じファイル名で保存することでできます。
# エクセルファイル読み込み
wb = openpyxl.load_workbook("ファイル名.xlsx")
・
・ (処理を実施)
・
# 保存
wb.save("ファイル名.xlsx")
以上を使用して、データを読み出して加工し、書き込むことでデータ処理を自動化することができます。