【python】Excel操作を自動化する方法(openpyxl)

目次

openpyxlライブラリのインストール

pythonではExcel操作を可能にするopenpyxlというオープンソースライブラリを使用することができます。

以下のように、ターミナル(mac)もしくはコマンドプロンプト(Windows)でライブラリをインストールします。

(参考:PyPI – the Python Package Index)

pip install openpyxl
openpyxlのインストール

ターミナル(mac)もしくはコマンドプロンプト(Windows)の最終行に「Successfully installed 〜〜〜」と表示されていればインストール成功です。

これでpython環境でopenpyxlライブラリが使用できるようになりました。

それでは、早速openpyxlライブラリの使い方を確認していきましょう。

openpyxlライブラリの使い方

openpyxlライブラリでは、Excelの基本的な操作をとても簡易なプログラムコードで実現できます。

ここからは実際に、pythonのプログラムコードを見ながらopenpyxlライブラリの使い方を見ていきます。

ライブラリのインポート

まず初めに、下記でopenpyxlライブラリをインポートします。

import openpyxl

これを書かないと、せっかくインストールしたopenpyxlライブラリを使うことができないので、

必ずpythonプログラムの上部に書きましょう。


Excelファイルを新規作成

pythonからExcelファイル(.xlsx)を作成することができます。

# wbという変数を用意し、Excelファイルオブジェクトを代入
wb = openpyxl.Workbook()

このように、openpyxlライブラリのWorkbookクラスを用いて、Excelファイルを宣言します。

オブジェクトを代入した変数 wb がExcelファイルそのものを扱っているというイメージで良いでしょう。


シートの追加

上記のExcelファイルオブジェクト wb において、create_sheet()メソッドを用いてシートを追加できます。

# New Sheetというシート名のExcelシートを追加
new_sheet = wb.create_sheet(title="New Sheet")

create_sheet()で引数 title を指定して、自由にシート名をつけることができます。

シート名をすべて表示

print(wb.sheetnames)
# 出力結果
['Sheet', 'New Sheet']

このようにExcelファイルオブジェクトのsheetnamesメソッドを使用すると、

Excelファイルオブジェクト内のシート名をすべてリストで確認することができます。


シートの選択・取得

pythonで操作したいExcelシートを選択します。

# wsというワークシートの変数を用意し、Excelシートオブジェクトを代入
ws = wb['Sheet']

Excelファイルオブジェクト内のシート名「Sheet」のExcelシートを選択します。

お分かりのように、Excelファイルオブジェクトは辞書型の構造になっていますね。


シート名の変更

指定したExcelワークシートのシート名を変更することができます。

ws.title = "Renamed Sheet Name"
print(wb.sheetnames)
# 出力結果
['Renamed Sheet Name', 'New Sheet']

このように、wsで指定しているワークシートに title メソッドを用いることでシート名を変更できます。

print(wb.sheetnames)の実行結果を見ても、シート名が変更されていることが確認できると思います。


シートの削除

Excelファイルオブジェクトからシートを削除することができます。

# 削除したいExcelワークシートを指定
ws = wb["New Sheet"]
wb.remove(ws)

print(wb.sheetnames)
# 出力結果
['Renamed Sheet Name']

出力結果を見ると、たしかに

先ほど追加した「New Sheet」というシート名のシートがなくなっていますね。


Excelファイルの保存

pythonから直接Excelファイルを「名前をつけて保存」することができます。

注意点として、openpyxlライブラリには「上書き保存」する方法がありません。

新規作成したExcelファイルもしくは既存のExcelファイルを保存する際はファイル名を記載して保存します。

#ワークブックをsample.xlsxという「名前をつけて保存」
wb.save("sample.xlsx")

まとめ

pythonのopenpyxlライブラリを使えば、ほとんどの Excel操作を実現することができます。

今回は基本的なExcel操作を取り上げましたが、セルへの値入力、罫線の設定、セルの背景色の設定などまだまだできることはたくさんあります。

ぜひあなたもopenpyxlライブラリを使って、面倒なExcel作業をpythonで自動化してみてくださいね。


よかったらシェアしてね!
目次