PythonでExcelを自由自在に操る! openpyxl超入門
Excelは、データの集計や分析、表計算など、ビジネスシーンで欠かせないツールです。Pythonのopenpyxl
ライブラリを使うと、このExcelファイルをプログラムから操作できるようになります。具体的には、Excelファイルの作成、読み込み、編集、保存などが可能です。この記事では、openpyxl
の基本的な使い方を、初心者にも分かりやすく解説します。
openpyxlとは?
openpyxl
は、PythonでExcelファイル(.xlsx形式)を扱うためのライブラリです。標準ライブラリではないため、使用する前にインストールする必要があります。
pip install openpyxl
このコマンドをターミナルまたはコマンドプロンプトで実行することで、openpyxl
をインストールできます。
Excelファイルの作成と保存
まずは、新しいExcelファイルを作成し、保存する方法を見ていきましょう。
from openpyxl import Workbook
# ワークブックを作成
book = Workbook()
# デフォルトのシートを取得
sheet = book.active
# シート名を変更
sheet.title = "サンプルシート"
# Excelファイルを保存
book.save("sample.xlsx")
このコードを実行すると、sample.xlsx
という名前のExcelファイルが作成されます。中には「サンプルシート」という名前のシートが1つ含まれています。
セルへの書き込み
次に、セルに値を書き込む方法です。
from openpyxl import Workbook
book = Workbook()
sheet = book.active
sheet.title = "データ入力シート"
# A1セルに値を書き込む
sheet["A1"] = "名前"
sheet["B1"] = "年齢"
sheet["A2"] = "山田太郎"
sheet["B2"] = 30
sheet["A3"] = "田中花子"
sheet["B3"] = 25
book.save("data.xlsx")
このコードでは、A1, B1, A2, B2, A3, B3セルにそれぞれ値を書き込んでいます。sheet["セル番号"] = 値
という形式で、簡単にセルに値を入力できます。
Excelファイルの読み込み
既存のExcelファイルを読み込むには、load_workbook
関数を使用します。
from openpyxl import load_workbook
# Excelファイルを読み込む
book = load_workbook("data.xlsx")
# シートを取得
sheet = book["データ入力シート"] # シート名で指定
# セルの値を読み込む
name = sheet["A2"].value
age = sheet["B2"].value
print(f"名前: {name}, 年齢: {age}")
ここでは、data.xlsx
ファイルを読み込み、「データ入力シート」というシートを取得しています。そして、A2セルとB2セルの値を読み込んで、コンソールに出力しています。sheet["セル番号"].value
でセルの値を取得できます。
行と列の操作
行や列を操作することも可能です。
from openpyxl import load_workbook
book = load_workbook("data.xlsx")
sheet = book["データ入力シート"]
# 行の挿入 (2行目の前に挿入)
sheet.insert_rows(2)
# 列の挿入 (C列の前に挿入)
sheet.insert_cols(3)
# 2行目の削除
sheet.delete_rows(3) # 1から始まるため、3行目が2行目になる
# C列の削除
sheet.delete_cols(3) # 1から始まるため、3列目がC列になる
book.save("modified_data.xlsx")
このコードでは、insert_rows
とinsert_cols
で行と列の挿入、delete_rows
とdelete_cols
で行と列の削除を行っています。
複数のシートの操作
Excelファイルには複数のシートを含めることができます。
from openpyxl import Workbook
book = Workbook()
# 新しいシートを作成
sheet1 = book.create_sheet("シート1")
sheet2 = book.create_sheet("シート2")
# シート名の指定(引数positionでシートの挿入位置を指定できる)
sheet3 = book.create_sheet("シート3", 0) # 0は一番最初
# シートへの書き込み
sheet1["A1"] = "シート1のデータ"
sheet2["A1"] = "シート2のデータ"
sheet3["A1"] = "シート3のデータ"
# シート一覧の確認
print(book.sheetnames) # シート名の一覧を取得
# シートの削除
del book["シート3"]
book.save("multiple_sheets.xlsx")
create_sheet
で新しいシートを作成できます。book.sheetnames
でシート名の一覧を取得したり、del book["シート名"]
でシートを削除したりできます。
まとめ
openpyxl
は、ExcelファイルをPythonで操作するための強力なライブラリです。この記事では、基本的なファイルの作成、読み込み、編集、保存、そしてシートの操作について解説しました。これらの基本をマスターすれば、Excelを使った様々なタスクを自動化することができます。さらにopenpyxl
には、セルのスタイルの変更、数式の挿入、グラフの作成など、高度な機能も備わっています。ぜひopenpyxl
を活用して、Excel操作を効率化しましょう。
コラム一覧
◯for文
◯関数
◯配列
◯文字列
◯正規表現
◯ファイル入出力
◯openpyxl
◯Numpy
◯Matplotlib
◯Pandas
◯scikit-learn
◯seaborn
◯beautifulsoup
◯tkinter
◯OpenCV
◯pygame
◯メイン関数
◯自作ライブラリ
◯画像処理
◯機械学習
◯スクレイピング
◯データ分析
◯グラフ作成
◯API
◯可読性
◯デバッグ
◯例外処理
◯コメント
◯組み込み関数
◯flask
◯学び方
◯ビット演算
◯マルチスレッドプログラミング
◯参照渡し
◯pyenv
◯エディタ
◯生成AI
◯画像認識
◯Streamlit
◯lambda式
◯物理演算シミュレーション
◯命名規則
◯遺伝的アルゴリズム
◯関数型プログラミング
◯オブジェクト指向
◯ツリー図