PythonでExcelを操作!OpenPyXLを使った書き込み方法を徹底解説

OpenPyXLの概要

OpenPyXLは、Pythonを使ってExcelファイルを操作するためのライブラリです。

Excelファイルの作成、読み取り、編集、保存など、幅広い操作に対応しており、

特に業務効率化やデータ分析の自動化において強力なツールです。

「PythonでExcelを操作したい」と考えている方にとって、

OpenPyXLはシンプルかつ直感的に使えるライブラリとして非常におすすめです。

ほかのExcelライブラリとの比較

OpenPyXLは、Pandasやxlrdなどのライブラリと比較して、

Excelファイルの操作に特化しており、以下のような特徴を持っています。

特徴 OpenPyXL Pandas xlrd
用途

Excelファイルの読み書き、

スタイル設定、グラフ作成

データフレームとしての

データ操作や分析

Excelファイルの

読み取り専用

Excelの

書式対応

対応(フォント、セルの背景色、罫線など) 非対応(データのみ操作) 非対応(データのみ操作)
グラフ作成 可能 非対応 非対応
サポート形式 .xlsx, .xlsm .xlsx, .csv .xls
主な用途 Excelファイルの完全な操作(作成から編集まで) 大量データの集計・分析 旧形式Excelファイルの読み取り

インストール方法

OpenPyXLを利用するには、Pythonがインストールされている環境で以下の手順を実行してください。

Pythonのインストール確認

以下のコマンドを実行して、Pythonがインストールされていることを確認します:

python --version

Pythonのバージョンが表示されれば準備完了です。

インストールされていない場合は、Python公式サイトからインストールしてください。

OpenPyXLのインストール

以下のコマンドを実行して、OpenPyXLをインストールします:

pip install openpyxl

これでOpenPyXLと必要な依存ライブラリがインストールされます。

基本的な使い方

OpenPyXLを使用すると、Pythonで簡単にExcelファイルを操作できます。

ここでは、「Excelファイルを読み込む」「新規作成」「保存」といった基本的な操作を紹介します。

Excelファイルを読み込む

既存のExcelファイルを読み込むには、openpyxl.load_workbook()を使用します。

from openpyxl import load_workbook

# Excelファイルを読み込む
workbook = load_workbook("example.xlsx")
sheet = workbook.active
print(sheet["A1"].value)  # セルA1の値を取得

読み込んだファイルは編集可能です。

新規Excelファイルの作成

新しいExcelファイルを作成するには、openpyxl.Workbook()を使用します。

from openpyxl import Workbook

# 新しいExcelファイルを作成
workbook = Workbook()
sheet = workbook.active
sheet.title = "MySheet"

新規作成したファイルには自由にデータを書き込むことができます。

Excelファイルを保存

編集したExcelファイルを保存するには、save()メソッドを使用します。

# Excelファイルを保存
workbook.save("new_file.xlsx")

保存することで、編集内容がファイルに反映されます。

書き込み操作の重要性

OpenPyXLの基本操作を理解した上で、

次に「Excelファイルへの書き込み操作」を詳しく解説します。

セルへのデータ書き込みや配列の書き込み方法を学ぶことで、Excel操作の可能性がさらに広がります。

書き込み操作の詳細解説

ワークシートの選択

既存のExcelファイルを開き、特定のワークシートを選択するには、

workbook[sheet_name]を使用します。

from openpyxl import load_workbook

# 既存のExcelファイルを読み込む
workbook = load_workbook("example.xlsx")

# 特定のワークシートを選択
sheet = workbook["Sheet1"]
print(sheet.title)  # ワークシートの名前を出力

新規ワークシートの作成

新しいワークシートを作成するには、create_sheet()メソッドを使用します。

from openpyxl import Workbook

# 新しいExcelファイルを作成
workbook = Workbook()

# 新しいワークシートを作成
new_sheet = workbook.create_sheet(title="NewSheet")
print(new_sheet.title)  # 新しいワークシートの名前を出力

セルに値を書き込む

特定のセルに文字列や数値を入力するには、セルを指定して値を代入します。

# セルに値を書き込む
new_sheet["A1"] = "Hello, OpenPyXL!"
new_sheet["B1"] = 12345

一次元配列を書き込む方法

リストデータを横方向または縦方向に書き込むには、ループを使用します。

# 横方向に一次元配列を書き込む
data = ["A", "B", "C"]
for col, value in enumerate(data, start=1):
    new_sheet.cell(row=1, column=col, value=value)

# 縦方向に一次元配列を書き込む
for row, value in enumerate(data, start=1):
    new_sheet.cell(row=row, column=1, value=value)

二次元配列を書き込む方法

リストのリスト(表形式データ)をシートに書き込む場合は、二重ループを使用します。

# 二次元配列データ
table_data = [
    ["Name", "Age", "City"],
    ["Alice", 25, "New York"],
    ["Bob", 30, "Los Angeles"]
]

# 二次元配列を書き込む
for row_index, row_data in enumerate(table_data, start=1):
    for col_index, value in enumerate(row_data, start=1):
        new_sheet.cell(row=row_index, column=col_index, value=value)

saveメソッドの呼び出し

編集した内容をファイルに保存するには、save()メソッドを使用します。

# 編集内容を保存
workbook.save("output.xlsx")

保存後、Excelファイルを開いて書き込み内容が反映されていることを確認できます。

トラブルシューティング

OpenPyXLを使用する際に、セルへの書き込みや保存時によく発生するエラーとその解決方法を紹介します。

エラー: FileNotFoundError

原因: 指定したExcelファイルが存在しない場合に発生します。

解決方法: ファイル名やパスを確認してください。

# 修正例
workbook = load_workbook("correct_file_path.xlsx")

また、相対パスではなく絶対パスを使用することも有効です。

エラー: PermissionError

原因: 保存しようとしているファイルが既に開かれている場合に発生します。

解決方法: 対象のExcelファイルを閉じてから保存処理を再実行してください。

# ファイルが開かれていないことを確認して保存
workbook.save("output.xlsx")

エラー: AttributeError (‘NoneType’ object has no attribute’)

原因: 存在しないセルやシートにアクセスしようとした場合に発生します。

解決方法: セルやシートの存在を事前に確認してください。

# 修正例
if "Sheet1" in workbook.sheetnames:
    sheet = workbook["Sheet1"]
else:
    print("Sheet1が存在しません。")

次のステップ

書き込み以外にも、OpenPyXLでは以下のような高度な操作が可能です:

これからもOpenPyXLを活用して、Excel操作をさらに効率化しましょう!

関連記事

RPA--OPENPYXL
「RPA--OPENPYXL」の記事一覧です。

コメント

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