【Pythonコラム】PythonでExcelを自由自在に操る! openpyxl超入門




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 >

レッスン概要

◯月額4,000円で質問し放題!!
◯完全オンライン
◯翌日までには必ず返信
◯挫折しない独自の学習メソッド
◯圧倒的高評価!!
◯テキストベースで時間を選ばない
◯高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!