【Python】Excelシートを大量にコピー(挿入)する:openpyxl

シート大量作成-アイキャッチ Python

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】エクセル処理を自動化:超便利51選
...

 

「PythonでExcel、メール、Webを自動化する本」

準備に時間をかけず、すぐ始められます
実践的な例題で、実務で本当に使えるプログラムを紹介
自分の仕事を効率化したい方の大きな武器になるオススメの1冊です!