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 | 一番最初の位置 |
1 | 2番目の位置 |
len(wb.sheetnames) | 最後の位置 |
インデックスは0から始まる点にご注意ください。
保存されるExcelファイルの構成例
仮に5シートを作成した場合、「レポート資料.xlsx」は以下のような構成になります。
- セクション_1
- セクション_2
- セクション_3
- セクション_4
- セクション_5
追加で目次
やはじめに
を先頭に挿入すれば、さらに構成性の高いブックが完成します。
まとめ
本記事では、Pythonを用いて「任意のシート数を持つExcelブック」を作成する方法をご紹介いたしました。
Workbook()
で新しいExcelファイルを作成.create_sheet()
でシートを追加index
指定で挿入位置も調整可能
業務用テンプレートや帳票作成の自動化にぜひお役立てください。