Home » Python » OpenPyXLの使い方 » OpenPyXLでシートを非表示に-Worksheet.sheet_state属性

OpenPyXLでシートを非表示に-Worksheet.sheet_state属性

動作検証バージョン:Windows 10 Pro(64-bit)+ Python 3.8.3(32-bit) + OpenPyXL 3.0.7

「openpyxl シート 非表示」
といった検索キーワードで、アクセスがありました。

OpenPyXLで、シートを非表示にするには、どのようなコードを書けばいいのかを探していた方による検索でしょうか。

OpenPyXLでシートの表示状態を確認する

結論。Worksheet.sheet_state属性で、シートの表示状態を取得できます。

以下のスクリプトを実行すると、C:\temp\sample.xlsxに含まれるシートの名前と表示状態が出力されます。

import openpyxl as xl

bk = xl.load_workbook(r'C:\temp\sample.xlsx')

for ws in bk.worksheets:
    print(ws.title, ws.sheet_state)

Sheet1・Sheet2・Sheet3といった名前のシートが3枚存在し、表示されているときには、

Sheet1 visible
Sheet2 visible
Sheet3 visible

と出力されます。

OpenPyXLでシートを非表示にする

このWorksheet.sheet_state属性で設定も可能です。

以下のスクリプトを実行すると、Cドライブtempフォルダーのsample.xlsxのSheet1シートが非表示になった、sample_new.xlsxを作成できます。

import openpyxl as xl

bk = xl.load_workbook(r'C:\temp\sample.xlsx')
bk['Sheet1'].sheet_state = 'hidden'

bk.save(r'C:\temp\sample_new.xlsx')

シート名ではなく数値による指定も可能です。

以下のスクリプトで、Cドライブtempフォルダーのsample.xlsxの先頭シートを非表示にした、sample_new.xlsxを作成できます。

import openpyxl as xl

bk = xl.load_workbook(r'C:\temp\sample.xlsx')
bk.worksheets[0].sheet_state = 'hidden'

bk.save(r'C:\temp\sample_new.xlsx')

Worksheet.Visble = xlSheetVeryHiddenに該当する設定

Excel VBAの場合、Worksheet.Visbleプロパティに、XlSheetVisibility列挙に定義されている定数xlSheetVeryHiddenを指定すると、コードからのみ再表示できる非表示設定ができます。

同様の設定が、OpenPyXLでも可能です。

bk['Sheet1'].sheet_state = 'veryHidden'

あるいは、

bk.worksheets[0].sheet_state = 'veryHidden'

のようにWorksheet.shee_state属性に文字列「veryHidden」を指定してください。

最終更新日時:2023-05-23 08:58

[スポンサードリンク]

Home » Python » OpenPyXLの使い方 » OpenPyXLでシートを非表示に-Worksheet.sheet_state属性

「OpenPyXLの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.