Pythonで複数のExcelファイルを一括自動作成する方法|openpyxlでブックを連続生成

複数のExcelファイルを同じ形式で一括作成したい、というケースは意外と多くあります。
たとえば「テンプレートの空ファイルを100部作成」や「顧客ごとのフォーマットを自動準備したい」といった場面です。

Pythonのopenpyxlライブラリを活用することで、Excelブック(.xlsx形式)を任意の件数だけ自動で生成することが可能です。


目次

使用するライブラリ:openpyxl

まず、openpyxlがインストールされていない場合は、以下のコマンドで追加してください。

pip install openpyxl

サンプルコード:複数ブックを一発で作成する

from openpyxl import Workbook

# ユーザーから生成件数を取得
book_count = input("生成するExcelファイル数を入力してください:")

for index in range(int(book_count)):
    new_book = Workbook()
    new_sheet = new_book.active
    new_sheet.title = "基本情報"
    
    # ファイル名は「出力_1.xlsx」などで保存
    new_book.save(f'出力_{index + 1}.xlsx')

補足ポイント

内容補足説明
Workbook()新しいExcelブック(1シート)を作成します
active初期状態で存在する1枚目のシートを参照します
titleシート名を任意の文字列に変更できます
save(ファイル名)指定されたファイル名で保存されます

ファイル名に日時や識別子を付ける方法(応用)

from datetime import datetime
filename = f"出力_{datetime.now():%Y%m%d_%H%M%S}.xlsx"

このようにすれば、ファイル名の重複回避や履歴管理にも活用できます。


よくあるエラーと対処法

エラー内容原因と対策
PermissionError同名のファイルが開いたままになっている可能性があります
ValueError入力値が数値でない場合はエラーになります。int変換時に注意

まとめ

Pythonを使えば、Excelブックを大量にまとめて生成する作業も簡単に自動化できます。
本記事でご紹介したように、openpyxlWorkbook()を利用することで、任意の件数でExcelファイルを一発で作成できます。

「表紙のみのテンプレートブック」「連番付きファイルの準備」など、様々な業務で活用できるテクニックです。ぜひご活用ください。

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

この記事を書いた人

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

目次