今回はPythonでExcelを操作します!
環境はMac、VSCodeで行っています。
ExcelをPythonで操作するならこの本もおすすめです!
|
どうやって操作するの?
今回は openpyxl というPythonライブラリを使います。
Excel操作といえば、Microsoftの VBA が有名です。
ただ、Pythonには大量のライブラリがあります。
例えば:
- SeleniumでWeb操作
- requestsでAPI通信
- pandasでデータ分析
などと組み合わせて使えます。
つまり、
- VBA → Excel専用
- Python + openpyxl → 外部サービスとも連携可能
という違いがあります。
準備しよう!
openpyxlをインストール
ターミナルで実行します。
pip install openpyxl
これで準備完了です。
Pythonを書き始めよう!
Excelファイルを読み込む
import openpyxl
wb = openpyxl.load_workbook("output.xlsx")
openpyxl.load_workbook() でExcelファイルを読み込めます。
ちなみに wb は workbook の略です。
シートを読み込む
import openpyxl
wb = openpyxl.load_workbook("output.xlsx")
ws = wb["Sheet1"]
wb.save("output.xlsx")
wb["シート名"] でシートを取得できます。
ws は worksheet の略です。
シートを追加する
import openpyxl
wb = openpyxl.load_workbook("output.xlsx")
ws = wb.create_sheet("newsheet")
wb.save("output.xlsx")
create_sheet() で新しいシートを追加できます。
シートをコピーする
import openpyxl
wb = openpyxl.load_workbook("output.xlsx")
ws = wb.copy_worksheet(wb["Sheet1"])
ws.title = "Sheet2"
wb.save("output.xlsx")
copy_worksheet() を使うとシートをコピーできます。
シートを削除する
import openpyxl
wb = openpyxl.load_workbook("output.xlsx")
wb.remove(wb["Sheet2"])
wb.save("output.xlsx")
remove() でシートを削除できます。
E## セルを編集する
import openpyxl
wb = openpyxl.load_workbook("output.xlsx")
ws = wb["Sheet1"]
ws["A1"] = "Hello, world!"
wb.save("output.xlsx")
ws["セル番号"] = 値 でセルを編集できます。
セルの値を取得する
import openpyxl
wb = openpyxl.load_workbook("output.xlsx")
ws = wb["Sheet1"]
print(ws["A1"].value)
.value を使うとセルの値を取得できます。
複数のセルを編集する
import openpyxl
wb = openpyxl.load_workbook("output.xlsx")
ws = wb["Sheet1"]
cells = ws["A1":"A31"]
for row in cells:
for cell in row:
cell.value = "5"
wb.save("output.xlsx")
ws["A1":"A31"] のように範囲指定できます。
このコードでは、A1〜A31をすべて "5" に変更しています。
まとめ
今回は openpyxl を使ってPythonからExcelを操作してみました。
Pythonは他ライブラリとの連携が非常に強いので、
- Webスクレイピング
- 自動化
- データ分析
などと組み合わせるとかなり便利です。
Excel作業を自動化したいなら、かなりおすすめです。
参考文献
- Valmore
https://valmore.work/how-to-use-openpyxl/#openpyxl
(2025年3月16日閲覧)