【Python】シートを大量にコピーする:openpyxl

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シート作成します。


 

シートを大量にコピー(雛形を複製)

以下のソースコードを実行すると、特定シートを一括で複数作成します。


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冊です!