Pythonで複数のシートを持つExcelファイルを作成する方法|openpyxlで構造的にブック生成

Pythonのopenpyxlライブラリを使用すると、Excelファイルを自動生成し、任意の枚数のシートを追加する処理を簡単に構築できます。

テンプレートブックの作成や、セクション別のシートを一括準備したい場合に大変有効です。


目次

使用ライブラリ:openpyxl

以下のコマンドでopenpyxlをインストールできます。

pip install openpyxl

サンプルコード:指定した枚数のシートを作成するExcelファイル

from openpyxl import Workbook

# ユーザーにシート枚数を入力させる
sheet_count = input("作成したいシート数を入力してください:")

# 新しいExcelブックの作成
report_book = Workbook()

# 最初のシート(既定で1枚存在)をリネーム
first_sheet = report_book.active
first_sheet.title = "セクション_1"

# 2枚目以降のシートを追加作成
for index in range(2, int(sheet_count) + 1):
    report_book.create_sheet(title=f"セクション_{index}")

# 最終保存
report_book.save("レポート資料.xlsx")

シートの挿入位置を指定したい場合

特定の位置にシートを挿入したい場合は、index引数を使います。

# ブックの先頭に新しいシートを追加
report_book.create_sheet(title="目次", index=0)

# 2番目の位置に挿入
report_book.create_sheet(title="はじめに", index=1)

シート挿入のインデックス指定について

index値挿入される位置
0一番最初の位置
12番目の位置
len(wb.sheetnames)最後の位置

インデックスは0から始まる点にご注意ください。


保存されるExcelファイルの構成例

仮に5シートを作成した場合、「レポート資料.xlsx」は以下のような構成になります。

  1. セクション_1
  2. セクション_2
  3. セクション_3
  4. セクション_4
  5. セクション_5

追加で目次はじめにを先頭に挿入すれば、さらに構成性の高いブックが完成します。


まとめ

本記事では、Pythonを用いて「任意のシート数を持つExcelブック」を作成する方法をご紹介いたしました。

  • Workbook()で新しいExcelファイルを作成
  • .create_sheet()でシートを追加
  • index指定で挿入位置も調整可能

業務用テンプレートや帳票作成の自動化にぜひお役立てください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次