コラム

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_rowsinsert_colsで行と列の挿入、delete_rowsdelete_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操作を効率化しましょう。



< ファイル入出力
Numpy >



コラム一覧

if文
for文
関数
配列
文字列
正規表現
ファイル入出力
openpyxl
Numpy
Matplotlib
Pandas
scikit-learn
seaborn
beautifulsoup
tkinter
OpenCV
pygame
メイン関数
自作ライブラリ
画像処理
機械学習
スクレイピング
データ分析
グラフ作成
API
可読性
デバッグ
例外処理
コメント
組み込み関数
flask
学び方
ビット演算
マルチスレッドプログラミング
参照渡し
pyenv
エディタ
生成AI
画像認識
Streamlit
lambda式
物理演算シミュレーション
命名規則
遺伝的アルゴリズム
関数型プログラミング
オブジェクト指向
ツリー図