LoginSignup
1
1

More than 3 years have passed since last update.

Python openpyxlでのコピーシートを最初に表示する方法

Posted at

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)

コピーシートを最初に表示したい

コビーシートでセルの編集などしてデータをアップデートしたいときがある、最新データを次ファイルアクセスした時に出したい。だが...
新しいビットマップ イメージ.jpg
実際シートをコピーしただけだと最新のコピーシートを最初に表示してくれない。

アクティブシートの存在を知る

アクティブシートとは、エクセルを開いたときに表示される画面のことを言います。

エクセルの開始

[ スタート ] ⇒ [ 全てのプログラム ] ⇒ [ Microsoft Office ] ⇒ [ Microsoft Excel ]

activesheet1.gif

クリックで開始

エクセルが開きました。この状態が「アクティブシート」です。

エクセルには複数のシートがあります。

activesheet2.gif

初期状態ではSheet1から3まで表示されています。「Sheet1」を選択している場合、アクティブシートは「Sheet1」になります。
参考:Excel エクセルマクロ・VBA塾(http://kabu-macro.com/)

解決

作成したコピーシートをアクティブシートにすればいい

#コピーシートをアクティブシートにする
wb.active = wb.sheetnames.index('シート4')
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1