Python openpyxlについて
PythonでのExcelのファイルやシートを作成、書き込みのパッケージ
official document (http://openpyxl.readthedocs.io/en/default/)
シートコピー
ファイルのシートのコピーには以下を用いることが多い
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)
コピーシートを最初に表示したい
コビーシートでセルの編集などしてデータをアップデートしたいときがある、最新データを次ファイルアクセスした時に出したい。だが...
実際シートをコピーしただけだと最新のコピーシートを最初に表示してくれない。
アクティブシートの存在を知る
アクティブシートとは、エクセルを開いたときに表示される画面のことを言います。
エクセルの開始
[ スタート ] ⇒ [ 全てのプログラム ] ⇒ [ Microsoft Office ] ⇒ [ Microsoft Excel ]
クリックで開始
エクセルが開きました。この状態が「アクティブシート」です。
エクセルには複数のシートがあります。
初期状態ではSheet1から3まで表示されています。「Sheet1」を選択している場合、アクティブシートは「Sheet1」になります。
参考:Excel エクセルマクロ・VBA塾(http://kabu-macro.com/)
##解決
作成したコピーシートをアクティブシートにすればいい
#コピーシートをアクティブシートにする
wb.active = wb.sheetnames.index('シート4')