Pythonを使ってExcelのワークシートを別のブックにコピー(複製)したいというニーズは、結構あるようです。このサイトへも、
「python excel シート コピー 別ブック」
「python エクセルシートを別ブックにコピーする」
といった検索キーワードでアクセスがあります。
v0.22.0以降のxlwingsなら、Sheet.copy()メソッドを使って、別のブックへのシートコピー(複製)ができます。
xlwingsを使ってシートを別ブックに複製するサンプル
Cドライブtempフォルダーに、コピー元のsample_A.xlsxとコピー先のsample_Z.xlsxを用意しておいてから、以下のスクリプトを実行してみてください。
bk_a = xw.Book(r'C:\temp\sample_A.xlsx')
bk_z = xw.Book(r'C:\temp\sample_Z.xlsx')
コピー元sample_A.xlsxブックの先頭シートが、
bk_a.sheets[0].copy(before=bk_z.sheets[0])
コピー先sample_Z.xlsxブックの先頭シートの前に複製されます。
bk_a.sheets[0].copy(before=bk_z.sheets[0])
OpenPyXLでダメならxlwingsを試しては
ExcelをPythonで自動化を図る場合に、openpyxlではダメだったというケースが少なくないだろうと私は想像しています。openpyxlはExcelを直接操作するわけではなく、Excel等で作られたファイルを操作するライブラリに過ぎないためです。
openpyxlでできることはかなり限定されますから、特にExcel VBAの経験がある場合には、xlwingsを試すほうがイイだろうと考えています。
- pywin32・win32com.clientでも別のブックにシートをコピー(複製)できる
- 『Excel VBAユーザーのためのPythonプログラミング入門』発売に
- 拙著で紹介しているBooks/Bookが持つプロパティとメソッドの一覧
- 拙著で紹介しているSheets/Sheetが持つプロパティとメソッドの一覧
- 拙著で紹介しているRangeが持つプロパティとメソッドの一覧
最終更新日時:2023-10-13 11:49
Home » Python » xlwingsの使い方 » Pythonで別のブックにシートをコピー(複製)するには?-xlwings.Sheet.copy()メソッド