【保存版】openpyxlの基本・実例コード付きで徹底解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年5月)

✔このような方へ向けて書かれた記事となります

「openpyxlの基本操作が知りたい」

「openpyxlってどうやって使うの?」

「openpyxlの具体例が見てみたい」

✔当記事を通じてお伝えすること

  • openpyxlとは?
  • openpyxlの操作方法
  • openpyxlのコード例

当記事では、openpyxlの基本だけでなく、実際のコードをご覧いただきながら手を動かして学べます

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

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/)をご覧ください。

別記事では、実際に依頼を受けて作成したアプリをご紹介していきます。

タイトルとURLをコピーしました