openpyxlライブラリのインストール
pythonではExcel操作を可能にするopenpyxlというオープンソースライブラリを使用することができます。
以下のように、ターミナル(mac)もしくはコマンドプロンプト(Windows)でライブラリをインストールします。
(参考:PyPI – the Python Package Index)
pip install 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で自動化してみてくださいね。