OpenPyXL Pythonでエクセル操作 – シートのコピー方法

OpenPyXL

OpenPyXLを使って、シートのコピーを行います。

注: セル (値、スタイル、ハイパーリンク、コメントを含む) と特定のワークシート属性 (寸法、形式、プロパティを含む) のみがコピーできます。画像やチャートなど、他のすべてのワークブック/ワークシート属性はコピーできません。
エクセルファイル間でワークシートをコピーすることもできません。ワークブックが読み取り専用または書き込み専用モードで開かれている場合、ワークシートをコピーすることはできません。

Tutorial — openpyxl 3.1.3 documentation
import openpyxl

# ワークブック新規作成
wb = openpyxl.Workbook()

# シート名からシートを選択
sheet = wb["Sheet"]

# シートをコピー(複製)する
wb.copy_worksheet(sheet)

wb.save("file.xlsx")

# ワークブックを閉じる
wb.close()

プログラムのコードを最初から見ていきます。

import openpyxl

openpyxlをインポートします。これをしないとopenpyxlのモジュールが使えません。

# ワークブック新規作成
wb = openpyxl.Workbook()

openpyxlモジュールの、Workbook()関数を使い、新規のエクセルファイルを作成します。

新規のエクセルファイル作成と同時にシート名が”Sheet”が自動で作成されます。

# シート名からシートを選択
sheet = wb["Sheet"]

sheet = wb[“Sheet”]で、Sheetという名前のシートを指定してオブジェクトを取得する。

# シートをコピー(複製)する
wb.copy_worksheet(sheet)

copy_worksheet()関数を使用し、( )にsheetのオブジェクトを指定しコピーを行う

コピーされたシートの名前は自動で割り振られ、一番右に配置される。

名前は自動でSheet Copyとなる。

もし、2回もう一つコピーした場合は名前が自動でSheet Copy1となる。

以上となります。

OpenPyXLの他の関数の使い方について知りたい場合は下記記事が非常に参考になります。

タイトルとURLをコピーしました