Python(openpyxl)で、エクセルシートを大量に一括作成するコードをご紹介します。
ぜひ、お試しください。
シートを大量にコピー
以下のコードを実行すると、シートを一括で複数追加します。
import openpyxl
#新規ブック作成
wb=openpyxl.Workbook()
ws1 = wb.active
#作成するシート枚数
MyCnt = 10
#指定回数繰り返してシートを作成
for i in range(1,MyCnt+1):
if i == 1:
#1つ目のシートは、シート名を変更するだけ
ws1.title = str(i)
else:
#新規シート作成
Shtname = str(i)
sheet = wb.create_sheet(title=Shtname)
#別名で保存
wb.save('C:/Users/admin/Desktop/テスト/シート大量複製.xlsx')
コード実行後
エクセルファイルを新規で作成・保存します。
新規シートを一気に10シート作成します。
シートを大量にコピー(12ヶ月分)
以下のコードを実行すると、12ヶ月分のシートを作成します。
import openpyxl
#新規ブック作成
wb=openpyxl.Workbook()
ws1 = wb.active
#作成するシート枚数
MyCnt = 12
#指定回数繰り返してシートを作成
for i in range(1,MyCnt):
if i == 1:
#1つ目のシートは、シート名を変更
ws1.title = str(i) + "月"
#シートに月を書き込み
ws1["A1"] = str(i) + "月"
else:
#新規シート作成
Shtname = str(i) + "月"
sheet = wb.create_sheet(title=Shtname)
#シートに月を書き込み
sheet["A1"] = str(i) + "月"
#別名で保存
wb.save('C:/Users/admin/Desktop/テスト/12か月シート.xlsx')
コード実行後
エクセルファイルを新規で作成・保存します。
ファイル内に1月から12月までのシートを挿入します。
各シートのセルA1には、「○月」と入力します。
シートを大量にコピー(雛形を複製)
以下のコードを実行すると、特定シートを一括で複数作成します。
import openpyxl
#ブックを開く
wb = openpyxl.load_workbook('C:/Users/admin/Desktop/テスト/test.xlsx')
#複製するシート枚数
MyCnt = 10
#指定回数繰り返してシートを作成
for i in range(1,MyCnt+1):
#雛形シートをコピー
Ws = wb.copy_worksheet(wb['雛形'])
#シート名
Shtname = str(i)
Ws.title = Shtname
#別名で保存
wb.save('C:/Users/admin/Desktop/テスト/シート大量複製.xlsx')
コード実行前
「雛形」シートがあるエクセルファイルを準備します。
コード実行後
「test.xlsx」を別ファイルで保存します。
「雛形」シートを、10シート分複製します。
「雛形」シートをそのまま複製しているので、
「1」~「10」シートまで、中身はすべて同じです。
動作環境
Python 3.7.4
openpyxl 3.0.5
この記事がお役に立ちますと幸いです。
・【Python】エクセルを自動処理する方法まとめ
【Python】エクセル処理を自動化:超便利55選
...
「PythonでExcel、メール、Webを自動化する本」
準備に時間をかけず、すぐ始められます
実践的な例題で、実務で本当に使えるプログラムを紹介
自分の仕事を効率化したい方の大きな武器になるオススメの1冊です!
リンク