worksheet.views【ビュー】モジュール

メモ ( 概要 アクティブセル・セル選択 ビューの切替・ズーム倍率 ウィンドウ枠の分割 各種設定 )
クラス: Pane【ビューペイン(区画)情報】 Selection【ビュー選択情報】 SheetView【シートビュー】 SheetViewList【シートビュー リスト】

メモ

概要

アクティブセル・セル選択

ビューの切替・ズーム倍率

ウィンドウ枠の分割

各種設定

Worksheet【ワークシート】sheet_view【シートビュー】を参照

Excelの [オプション] - [詳細設定] - [次のシートで作業するときの表示設定]

項目プロパティ
行列番号を表示するshowRowColHeaders【見出し(行列番号部分)の表示有無】
計算結果の代わりに数式セルに表示するshowFormulas【数式の表示有無】
シートを右から左へ表示するrightToLeft【右から左へ表示設定 (右端がA列)】
セロ値のセルにゼロを表示するshowZeros【ゼロ値の表示有無】
アウトラインが適用されている場合はアウトライン記号を表示する showOutlineSymbols【アウトライン(グループ化)記号の表示有無】
枠線を表示する showGridLines【枠線の表示有無】
(参照は、Worksheet . show_gridlines【枠線の表示有無】 でも可)
枠線の色 defaultGridColor【枠線のデフォルト色の使用有無】
colorId【枠線のカラーインデックス】

Excelの [表示]タブ - [表示]

項目プロパティ
ルーラーshowRuler【ルーラーの表示有無】
枠線showGridLines【枠線の表示有無】
見出しshowRowColHeaders【見出し(行列番号部分)の表示有無】

Excelの [表示]タブ - [ブックの表示] - [ページレイアウト]

項目プロパティ
余白の表示 / 余白を表示しないshowWhiteSpace【余白の表示有無 (ページレイアウト)】

Pane【ビューペイン(区画)情報】クラス

クラス定義

クラス備考
親:openpyxl.descriptors.serialisable.Serialisable
インポート:from openpyxl.worksheet.views import Pane
class Pane(
    xSplit=None,
    ySplit=None,
    topLeftCell=None,
    activePane="topLeft",
    state="split")
ビューペイン(区画)情報
xSplit (float)左右分割(固定)位置
ySplit (float)上下分割(固定)位置
topLeftCell左上表示セルアドレス (右下ペイン)
activePaneアクティブペイン(区画)
stateウィンドウ枠状態

プロパティ

プロパティ備考
activePane 'bottomLeft':左下
'bottomRight':右下
'topLeft':左上
'topRight':右上
アクティブペイン(区画)
state 'frozen':ウィンドウ枠固定
'frozenSplit':ウィンドウ枠固定 (固定前はウィンドウ枠分割)
'split':ウィンドウ枠分割
ウィンドウ枠状態
topLeftCellstr左上表示セルアドレス (右下ペイン)
xSplitNone
float
左右分割(固定)位置
分割位置 (ウィンドウ枠分割:1/20 ポイント単位)
固定列数 (ウィンドウ枠の固定)
ySplitNone
float
上下分割(固定)位置
分割位置 (ウィンドウ枠分割:1/20 ポイント単位)
固定行数 (ウィンドウ枠の固定)

Selection【ビュー選択情報】クラス

クラス定義

クラス備考
親:openpyxl.descriptors.serialisable.Serialisable
インポート:from openpyxl.worksheet.views import Selection
class Selection(
    pane=None,
    activeCell="A1",
    activeCellId=None,
    sqref="A1")
ビュー選択情報
pane (str)ペイン(区画)位置
activeCell (str)アクティブセル アドレス (単一セル)
activeCellId (int)アクティブセル インデックス
sqref (str)選択範囲シーケンス

プロパティ

プロパティ備考
activeCellstrアクティブセル アドレス (単一セル)
activeCellIdint (0~) アクティブセル インデックス
(アクティブセルを含む選択範囲のインデックス)
sqref【選択範囲シーケンス】が複数の場合に有効
pane 'none'
'bottomLeft':左下
'bottomRight':右下
'topLeft':左上
'topRight':右上
ペイン(区画)位置
sqrefstr 選択範囲シーケンス (範囲内にアクティブセルを含める)
(複数:半角スペース区切り)

SheetView【シートビュー】クラス

クラス定義

クラス備考
親:openpyxl.descriptors.serialisable.Serialisable
インポート:from openpyxl.worksheet.views import SheetView
class SheetView(
    windowProtection=None,
    showFormulas=None,
    showGridLines=None,
    showRowColHeaders=None,
    showZeros=None,
    rightToLeft=None,
    tabSelected=None,
    showRuler=None,
    showOutlineSymbols=None,
    defaultGridColor=None,
    showWhiteSpace=None,
    view=None,
    topLeftCell=None,
    colorId=None,
    zoomScale=None,
    zoomScaleNormal=None,
    zoomScaleSheetLayoutView=None,
    zoomScalePageLayoutView=None,
    zoomToFit=None,
    workbookViewId=0,
    selection=None,
    pane=None)
シートビュー
windowProtection (bool)ウィンドウ保護の有無
showFormulas (bool)数式の表示有無
showGridLines (bool)枠線の表示有無
showRowColHeaders (bool)見出し(行列番号部分)の表示有無
showZeros (bool)ゼロ値の表示有無
rightToLeft (bool)右から左へ表示設定 (右端がA列)
tabSelected (bool)タブの選択有無
showRuler (bool)ルーラーの表示有無
showOutlineSymbols (bool)アウトライン(グループ化)記号の表示有無
defaultGridColor (bool)枠線のデフォルト色の使用有無
showWhiteSpace (bool)余白の表示有無 (ページレイアウト)
view (str)ビュータイプ
topLeftCell (str)左上表示セルアドレス (右下ペイン)
colorId (int)枠線のカラーインデックス
zoomScale (int)ズーム倍率 (現在ビュー)
zoomScaleNormal (int)ズーム倍率 (標準ビュー)
zoomScaleSheetLayoutView (int)ズーム倍率 (改ページプレビュー)
zoomScalePageLayoutView (int)ズーム倍率 (ページレイアウトビュー)
zoomToFit (bool)
workbookViewId (int)ブックビューId
selection (list | tuple)ビュー選択情報リスト
pane (Pane)ビューペイン(区画)情報

プロパティ

プロパティ備考
colorIdint枠線のカラーインデックス
defaultGridColorbool枠線のデフォルト色の使用有無
paneNone:ウィンドウ枠の分割・固定 なし
Pane
ビューペイン(区画)情報
rightToLeftbool右から左へ表示設定 (右端がA列)
selection list[ Selection ]
tuple( Selection )
ビュー選択情報リスト
showFormulasbool数式の表示有無
showGridLinesbool 枠線の表示有無
(Worksheet.show_gridlines )
showOutlineSymbolsboolアウトライン(グループ化)記号の表示有無
showRowColHeadersbool 見出し(行列番号部分)の表示有無
showRulerboolルーラーの表示有無
showWhiteSpacebool余白の表示有無 (ページレイアウト)
showZerosboolゼロ値の表示有無
tabSelectedboolタブの選択有無
tagnamestrタグ名 ('sheetView')
topLeftCellstr左上表示セルアドレス (右下ペイン)
view None
'none'
'normal':標準ビュー
'pageBreakPreview':改ページプレビュー
'pageLayout':ページレイアウトビュー
ビュータイプ
windowProtectionboolウィンドウ保護の有無
workbookViewIdintブックビューId
zoomScaleNone
int (10 ~ 400:10% ~ 400%)
ズーム倍率 (現在ビュー)
zoomScaleNormalNone:自動
int (0:自動 / 10 ~ 400:10% ~ 400%)
ズーム倍率 (標準ビュー)
zoomScalePageLayoutViewNone:自動
int (0:自動 / 10 ~ 400:10% ~ 400%)
ズーム倍率 (ページレイアウトビュー)
zoomScaleSheetLayoutViewNone:自動
int (0:自動 / 10 ~ 400:10% ~ 400%)
ズーム倍率 (改ページプレビュー)
zoomToFitbool(チャートシートのみ)

SheetViewList【シートビュー リスト】クラス

クラス定義

クラス備考
親:openpyxl.descriptors.serialisable.Serialisable
インポート:from openpyxl.worksheet.views import SheetViewList
class SheetViewList(
    sheetView=None,
    extLst=None)
シートビュー リスト
sheetView (list | tuple)シートビュー リスト
extLst (ExtensionList)

※ 初期状態で、Worksheet【ワークシート】views【シートビュー リスト】プロパティに生成済
  先頭のシートビューは、 sheet_view【シートビュー】プロパティでショートカット参照

プロパティ

プロパティ備考
extLstExtensionList
sheetView list[ SheetView ]
tuple( SheetView )
シートビュー リスト
複数:同一シートを複数ウィンドウで表示
   (Excel [表示]タブ - [ウィンドウ] - [新しいウィンドウを開く])
tagnamestrタグ名 ('sheetViews')

アクティブセル

from openpyxl import Workbook

# ワークブック作成
WORKBOOK = 'sample.xlsx'
wb = Workbook()
ws_x = wb.active

# [SheetX]
SHEET_X = 'SheetX'
ws_x.title = SHEET_X
ws_x['A1'] = f'[{SHEET_X}]'
ws_x.sheet_view.selection[0].activeCell = 'B2'
ws_x.sheet_view.selection[0].sqref = 'B2'

# [SheetY]
SHEET_Y = 'SheetY'
ws_y = wb.create_sheet(SHEET_Y)
ws_y['A1'] = f'[{SHEET_Y}]'
ws_y.sheet_view.selection[0].activeCell = 'C3'
ws_y.sheet_view.selection[0].sqref = 'B2 C3:D4 E5:G7'
ws_y.sheet_view.selection[0].activeCellId = 1

# ワークブック保存
wb.save(WORKBOOK)

ビュー アクティブセルのサンプル画像1

ビュー アクティブセルのサンプル画像2


ビューの切替・ズーム倍率

from openpyxl import Workbook

# ワークブック作成
WORKBOOK = 'sample.xlsx'
wb = Workbook()
ws_normal = wb.active

# 標準ビュー
ZOOM_NORMAL = 125
ws_normal.title = 'normal (標準ビュー)'
ws_normal['B2'] = ws_normal.title
ws_normal['B3'] = f'[{ZOOM_NORMAL} %]'
ws_normal.sheet_view.view = 'normal'
ws_normal.sheet_view.zoomScale = ZOOM_NORMAL
ws_normal.sheet_view.zoomScaleNormal = ZOOM_NORMAL

# ページレイアウトビュー
ZOOM_PAGE = 150
ws_page = wb.create_sheet('pageLayout (ページレイアウトビュー)')
ws_page['B2'] = ws_page.title
ws_page['B3'] = f'[{ZOOM_PAGE} %]'
ws_page.sheet_view.view = 'pageLayout'
ws_page.sheet_view.zoomScalePageLayoutView = ZOOM_PAGE
ws_page.sheet_view.zoomScale = ZOOM_PAGE

# 改ページプレビュー
ZOOM_BREAK = 175
ws_break = wb.create_sheet('pageBreakPreview (改ページプレビュー)')
ws_break['B2'] = ws_break.title
ws_break['B3'] = f'[{ZOOM_BREAK} %]'
ws_break.sheet_view.view = 'pageBreakPreview'
ws_break.sheet_view.zoomScaleSheetLayoutView = ZOOM_BREAK
ws_break.sheet_view.zoomScale = ZOOM_BREAK

# 全てのビューで同じズーム倍率
ZOOM_SAME = 75
ws_same = wb.create_sheet('同じズーム倍率')
ws_same['B2'] = ws_same.title
ws_same['B3'] = f'[{ZOOM_SAME} %]'
ws_same.sheet_view.zoomScaleNormal = ZOOM_SAME
ws_same.sheet_view.zoomScaleSheetLayoutView = ZOOM_SAME
ws_same.sheet_view.zoomScalePageLayoutView = ZOOM_SAME
ws_same.sheet_view.zoomScale = ZOOM_SAME

# ワークブック保存
wb.save(WORKBOOK)

ビュー ビューの切替・ズーム倍率のサンプル画像1

ビュー ビューの切替・ズーム倍率のサンプル画像2

ビュー ビューの切替・ズーム倍率のサンプル画像3

ビュー ビューの切替・ズーム倍率のサンプル画像4

ビュー ビューの切替・ズーム倍率のサンプル画像5

ビュー ビューの切替・ズーム倍率のサンプル画像6


ウィンドウ枠の分割

from openpyxl import Workbook
from openpyxl.worksheet.views import Pane

# ワークブック作成
WORKBOOK = 'sample.xlsx'
wb = Workbook()
ws_hv = wb.active

# 分割 (上下・左右)
SHEET_HV = '分割 (上下・左右)'
ws_hv.title = SHEET_HV
ws_hv['B2'] = SHEET_HV
pane = Pane(
    xSplit=3750.0,
    ySplit=1080.0,
    topLeftCell='D4',
    state='split')
ws_hv.sheet_view.pane = pane

# 分割 (左右)
SHEET_V = '分割 (左右)'
ws_v = wb.create_sheet(SHEET_V)
ws_v['B2'] = SHEET_V
pane = Pane(
    xSplit=3750.0,
    topLeftCell='D1',
    state='split')
ws_v.sheet_view.pane = pane

# 分割 (上下)
SHEET_H = '分割 (上下)'
ws_h = wb.create_sheet(SHEET_H)
ws_h['B2'] = SHEET_H
pane = Pane(
    ySplit=1080.0,
    topLeftCell='A4',
    state='split')
ws_h.sheet_view.pane = pane

# ワークブック保存
wb.save(WORKBOOK)

ビュー ウィンドウ枠の分割のサンプル画像1

ビュー ウィンドウ枠の分割のサンプル画像2

ビュー ウィンドウ枠の分割のサンプル画像3


各種設定

from openpyxl import Workbook

# ワークブック作成
WORKBOOK = 'sample.xlsx'
wb = Workbook()
ws = wb.active

# 数式 非表示 (デフォルト)
ws['B2'] = 2
ws['B3'] = 3
ws['B4'] = '=B2*B3'
# シートを右から左へ表示
ws.sheet_view.rightToLeft = True
# 枠線の色
ws.sheet_view.defaultGridColor = False
ws.sheet_view.colorId = 2

# シート作成
SHEET_2 = 'Sheet2'
ws_2 = wb.create_sheet(SHEET_2)
# 行列番号 非表示
ws_2.sheet_view.showRowColHeaders = False
# 枠線 非表示
ws_2.sheet_view.showGridLines = False
print(ws_2.show_gridlines)
# 出力:False
# 数式の表示
ws_2['B2'] = 2
ws_2['B3'] = 3
ws_2['B4'] = '=B2*B3'
ws_2.sheet_view.showFormulas = True

# ワークブック保存
wb.save(WORKBOOK)

ビュー 各種設定のサンプル画像1

ビュー 各種設定のサンプル画像2