Home » Python » xlwingsの使い方 » xlwingsでシートをコピー・複製する

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

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

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

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つが指定できます。引数を指定しなかった場合には、同じブックの最後尾・末尾に複製されます。

最終更新日時:2021-08-09 12:14

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsでシートをコピー・複製する

TrackBack:0

TrackBack URL

Home » Python » xlwingsの使い方 » xlwingsでシートをコピー・複製する

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

.