Home » Python » xlwingsの使い方 » xlwingsでシートのコピーを作成する・複製する-Sheet.copy()メソッド

xlwingsでシートのコピーを作成する・複製する-Sheet.copy()メソッド

動作検証バージョン:64bit Windows 10 Pro + 32bit Excelバージョン2103 ビルド13901.20400 Microsoft Store)+ Python 3.8.3 + xlwings 0.23.1

「xlwings Excel シートをコピー」
といった検索キーワードでアクセスがあることに、かなり前から気づいていたのですが、記事を書かずに済ませてきました。

Excelそのものを操作するPythonの外部ライブラリ「xlwings」には、シートのコピーを作成する(シートを複製する)メソッドが用意されていなかったためです。

[スポンサードリンク]

久しぶりにxlwingsを使ってみると、2021年1月末にSheet.copyメソッドが実装されていました。

xlwingsでシートをコピー・複製する

Cドライブのtempフォルダーに、sample.xlsxを用意しておいてから、以下のスクリプトを実行してください。

import xlwings

bk = xlwings.Book(r'C:\temp\sample.xlsx')
bk.sheets[0].copy(before=bk.sheets[0])

先頭のシートが、
  bk.sheets[0].copy(before=bk.sheets[0])

その左側に複製されます。
  bk.sheets[0].copy(before=bk.sheets[0])

Sheet.copy()メソッドは0.22.0以降で利用可能

Sheet.copy()メソッドが実装されているのは、xlwingsのバージョンが0.22.0以降です。

それ以前のバージョンのxlwingsを使っている場合は、アップデートの必要があります。

xlwings.Sheet.copy()とExce.Worksheet.Copyの違い

xlwingsのSheet.copyメソッドは、内部でExcelのWorksheet.Copyメソッドを呼んでいますが、仕様が微妙に異なります。

ExcelのWorksheet.Copyメソッドは、戻り値がなく、引数にはBeforeとAfterの2つが指定できます。引数を指定しなかった場合には、新規ブックへの複製が行われます。

xlwingsのSheet.copy()メソッドは、新たに作成されたSheetが戻り値となっており、引数にはbefore・after・nameの3つが指定できます。引数を指定しなかった場合には、同じブックの最後尾・末尾に複製されます。

最終更新日時:2023-06-26 13:30

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsでシートのコピーを作成する・複製する-Sheet.copy()メソッド

「xlwingsの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.