複数の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ブックを大量にまとめて生成する作業も簡単に自動化できます。
本記事でご紹介したように、openpyxl
のWorkbook()
を利用することで、任意の件数でExcelファイルを一発で作成できます。
「表紙のみのテンプレートブック」「連番付きファイルの準備」など、様々な業務で活用できるテクニックです。ぜひご活用ください。