先日に引き続きopenpyxlで遊んでいた時に調べた内容のメモです。
・シートコピー
・ソースコード
公式ドキュメントはこちら
openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl 2.6.2 documentation
シートコピー
シートコピーは基本的にこれだけ。
workbook.copy_worksheet(worksheet)
こんな感じで使った。
from openpyxl import load_workbook #対象のエクセルファイル指定 xls_file='test.xls' #openpyxlでエクセルファイル(ブック)とアクティブシートを読込 wb=load_workbook(xls_file) ws=wb.active #アクティブシートをコピー ws_copy=wb.copy_worksheet(ws) #コピーされたシートのタイトルを変更する ws_copy.title='新シート名' #リストで量産するなら list=['シート1','シート2','シート3','シート4'] for sheet_name in list: ws_copy = wb.copy_worksheet(ws) ws_copy.title=sheet_name #保存して終わり wb.save(xls_file)
上記コードではシートタイトル(エクセル上のシート名)を変更していますが、特に変更しなければ「コピー元シート名△Copy」というシート名になります。(△は半角スペース)
コピーで新しく生成されるシート名が既に存在している状況であれば、末尾に「1」から始まる連番が付与されるようです。
コピー元シート名:sheet
1回シートコピー:sheet Copy
2回シートコピー:sheet Copy1
私は書式諸々を設定したテンプレシートを作っておいて、スクリプトが動くたびにテンプレからコピーしたシートで作業してました。
ソースコード
ちょっと遊んでおもちゃを作った後に知りましたが、bitbucketにソースコードがありました。 出来ること出来ないことをちゃんと調べようと思ったら、ソースコードを真面目に読まんといかんね。
おわり。