【初心者向け】openpyxlでExcelに一括書き込みする方法を分かりやすく解説

はじめに

Excelファイルに大量のデータを入力するとき、毎回手作業でセルを埋めていませんか?
その作業、Pythonのopenpyxlライブラリを使えば一瞬で終わるかもしれません。

本記事では、初心者の方にも分かりやすく、openpyxlを使った「Excelへの一括書き込み」方法をソースコード付きで丁寧に解説します。
ぜひ最後まで読んで、明日からの業務や学習に活用してみてください!


openpyxl を使った 一括書き込み

まずは、openpyxlのインストール方法を確認し、Excelの基本構造である「ブック」「ワークシート」「セル」の関係性について整理します。そのうえで、実際の一括書き込み方法として、以下の2つのアプローチを具体的なコード例付きで紹介します。

  • 2次元リストを使ったループ処理:複数行・複数列のデータを1つずつセルに書き込む方法
  • append()メソッドを使った一括追加:行単位でまとめてデータを追加できる便利な方法

openpyxl のインストール方法

Python で openpyxl を利用する場合、以下のコマンドでインストールを行います。

 pip install openpyxl

エクセル操作の基本:ブック・ワークシート・セルの階層構造

openpyxl でエクセルを操作する際には、まずブック(Workbook)・ワークシート(Worksheet)・セル(Cell)の階層構造を理解しておくことが重要です。

  • ブック:Excelファイル全体
  • ワークシート:ブック内に含まれる個別のシート
  • セル:データを入力するマス目の最小単位

Python のコードで「ブックを読み込み、特定のワークシートを選択してセルを指定する」という流れは、この階層構造に基づいています。


 一括書き込みの方法

それでは、本題である「一括書き込み」の方法をご紹介します。
手作業で 1 セルずつ書き込むよりもはるかに効率的で、作業ミスも減らせます。

リスト(2次元リスト)を使ったループ処理

Python のリストを活用して、複数のデータをまとめて書き込む方法です。
例えば、表形式のデータを持つ 2 次元リストを想定します。

# 2次元リストを Excel に書き込む例
data = [
    ["名前", "年齢", "職業"],
    ["田中", 25, "エンジニア"],
    ["佐藤", 30, "デザイナー"]
]

wb = Workbook()
ws = wb.active

for row_index, row_data in enumerate(data, start=1):
    for col_index, value in enumerate(row_data, start=1):
        ws.cell(row=row_index, column=col_index, value=value)

wb.save("bulk_write.xlsx")

上記コードでは、ループを使って行ごと・列ごとにデータを埋めています。これが最もシンプルな一括書き込みの実装例です。

append() を使った一括書き込み

openpyxl には ws.append() という便利なメソッドがあり、リストをまとめて 1 行ずつ追加することができます。データベースから取り出したレコードや CSV データを扱う場合に便利です。

# append() を使ってデータを行ごとに追記
data_to_append = [
    ["鈴木", 28, "プログラマー"],
    ["高橋", 27, "営業"]
]

for row_data in data_to_append:
    ws.append(row_data)

wb.save("bulk_write.xlsx")

append()を使うと、ループの中で列番号を指定しなくてよいのでコードがスッキリします。


公式ドキュメント

openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl 3.1.3 documentation

関連記事

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

コメント

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