(最終更新月:2023年5月)
✔このような方へ向けて書かれた記事となります
「openpyxlの基本操作が知りたい」
「openpyxlってどうやって使うの?」
「openpyxlの具体例が見てみたい」
✔当記事を通じてお伝えすること
- openpyxlとは?
- openpyxlの操作方法
- openpyxlのコード例
当記事では、openpyxlの基本だけでなく、実際のコードをご覧いただきながら手を動かして学べます。
ぜひ最後までご覧ください。
openpyxlとは?
openpyxlとは、PythonでExcelファイルを操作するための強力なライブラリです。
openpyxlを使うと以下のようなことができます。
- Excelのシートを読み取る
- 新しいシートを作成する
- データを解析する
PythonとExcelの組み合わせは、Excelの便利な機能をPythonの力強いデータ解析能力と組み合わせることで、効率的なデータ処理を実現するのです。
openpyxlの準備
まずはopenpyxlをインストールしましょう。
Pythonのパッケージ管理システム、pipを使えば簡単です。ターミナルやコマンドプロンプトを開き、以下のコマンドを入力します。
pip install openpyxl
pipをインストールしていない方はこちらをどうぞ。
Excelの準備
次に操作するExcelファイルを準備します。
例えば、複数のシートにまたがる大量のデータを含むExcelファイルがあるとしましょう。
これをopenpyxlで操作してみます。
ワークブックの開閉
openpyxlを使ってExcelファイルを開き、操作後に保存し閉じる方法を見てみましょう。
以下のコードは”example.xlsx”というExcelファイルを開き、その後保存して閉じる例です。
メソッドのインポート
from openpyxl import load_workbook
ワークブックを開く
wb = load_workbook('example.xlsx')
ワークブックの上書き保存
wb.save('example.xlsx')
ワークブックの別名保存
wb.save(“example2.xlsx”)
名前を別名にするだけです。
ファイルパスで指定することも可能です。
wb.save("/home/yulikepython/example3.xlsx")
シート操作のマスター
シートの選択、作成、削除はopenpyxlで簡単におこなえます。
以下のことをおこなうコードを書いてみましょう。
- “Sheet1″という名前のシートを選択
- 新たに”Sheet2″を作成
- “Sheet3″を削除する
# シートを選択
ws = wb['Sheet1']
# 新しいシートを作成
ws2 = wb.create_sheet('Sheet2')
# シートを削除
wb.remove(wb['Sheet3'])
セル操作
セルの操作もopenpyxlの得意分野といえます。
以下を見ていきます。
- セルの値を取得
- 書き込み
- 削除
- セルの統合
セルの値を取得
セルの値を取得します。
value = ws['A1'].value
書き込み
セルに値を書き込みます。
ws['A1'] = 'Hello, Excel!'
削除
セルの値を削除します。
ws['A1'].value = None
セルの統合
# 結合したセルの操作
ws.merge_cells('A1:B2')
#統合の解除
ws.unmerge_cells('A1:B2')
データ操作と解析のスキルアップ
openpyxlでは、Excelのデータ操作や解析も可能です。
セルの値の変更、行や列の追加・削除、ソートやフィルタの設定等が可能です。
また、ワークシートの全セルを反復することもできます。
# セルの値を変更
ws['A1'] = 'New Value'
# 行を追加
ws.append(['New', 'Row'])
# 列を削除
ws.delete_cols(1)
# ソートとフィルタの設定
ws.auto_filter.ref = 'A1:B10'
ws.auto_filter.add_sort_condition('B2:B10')
#B列をソートしています。
# ワークシートの全セルを反復
for row in ws.iter_rows(values_only=True):
print(row)
グラフ作成で視覚化
openpyxlを使ってExcelのデータからグラフを作成できます。
以下は、あるデータ範囲から棒グラフを作成する例です。
from openpyxl.chart import BarChart, Reference
# データ範囲を指定
values = Reference(ws, min_col=2, min_row=1, max_col=3, max_row=5)
# チャートオブジェクトを作成
chart = BarChart()
# データをチャートに追加
chart.add_data(values)
# チャートをシートに追加
ws.add_chart(chart, 'E5')
まとめ: openpyxlと共にデータ操作をマスター
openpyxlはPythonでExcelファイルを操作するための強力なライブラリです。
このガイドを通じて、その基本的な使用方法と機能を学びました。
これからは、Excelファイルのデータ操作がより効率的かつ自動化されます。
さらなる詳細や高度な機能については、openpyxlの公式ドキュメンテーション(https://openpyxl.readthedocs.io/en/stable/)をご覧ください。
別記事では、実際に依頼を受けて作成したアプリをご紹介していきます。