「xlwings Excel シートをコピー」
といった検索キーワードでアクセスがあることに、かなり前から気づいていたのですが、記事を書かずに済ませてきました。
Excelそのものを操作するPythonの外部ライブラリ「xlwings」には、シートのコピーを作成する(シートを複製する)メソッドが用意されていなかったためです。
久しぶりにxlwingsを使ってみると、2021年1月末にSheet.copyメソッドが実装されていました。
xlwingsでシートをコピー・複製する
Cドライブのtempフォルダーに、sample.xlsxを用意しておいてから、以下のスクリプトを実行してください。
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
- Newer:VBAで系列の個数を取得する
- Older:ActiveWorkbook.FullNameとは
Home » Python » xlwingsの使い方 » xlwingsでシートのコピーを作成する・複製する-Sheet.copy()メソッド