Source code for openpyxl.worksheet.views

# Copyright (c) 2010-2024 openpyxl

from openpyxl.descriptors import (
    Bool,
    Integer,
    String,
    Set,
    Float,
    Typed,
    NoneSet,
    Sequence,
)
from openpyxl.descriptors.excel import ExtensionList
from openpyxl.descriptors.serialisable import Serialisable


[docs] class Pane(Serialisable): xSplit = Float(allow_none=True) ySplit = Float(allow_none=True) topLeftCell = String(allow_none=True) activePane = Set(values=("bottomRight", "topRight", "bottomLeft", "topLeft")) state = Set(values=("split", "frozen", "frozenSplit")) def __init__(self, xSplit=None, ySplit=None, topLeftCell=None, activePane="topLeft", state="split"): self.xSplit = xSplit self.ySplit = ySplit self.topLeftCell = topLeftCell self.activePane = activePane self.state = state
[docs] class Selection(Serialisable): pane = NoneSet(values=("bottomRight", "topRight", "bottomLeft", "topLeft")) activeCell = String(allow_none=True) activeCellId = Integer(allow_none=True) sqref = String(allow_none=True) def __init__(self, pane=None, activeCell="A1", activeCellId=None, sqref="A1"): self.pane = pane self.activeCell = activeCell self.activeCellId = activeCellId self.sqref = sqref
[docs] class SheetView(Serialisable): """Information about the visible portions of this sheet.""" tagname = "sheetView" windowProtection = Bool(allow_none=True) showFormulas = Bool(allow_none=True) showGridLines = Bool(allow_none=True) showRowColHeaders = Bool(allow_none=True) showZeros = Bool(allow_none=True) rightToLeft = Bool(allow_none=True) tabSelected = Bool(allow_none=True) showRuler = Bool(allow_none=True) showOutlineSymbols = Bool(allow_none=True) defaultGridColor = Bool(allow_none=True) showWhiteSpace = Bool(allow_none=True) view = NoneSet(values=("normal", "pageBreakPreview", "pageLayout")) topLeftCell = String(allow_none=True) colorId = Integer(allow_none=True) zoomScale = Integer(allow_none=True) zoomScaleNormal = Integer(allow_none=True) zoomScaleSheetLayoutView = Integer(allow_none=True) zoomScalePageLayoutView = Integer(allow_none=True) zoomToFit = Bool(allow_none=True) # Chart sheets only workbookViewId = Integer() selection = Sequence(expected_type=Selection) pane = Typed(expected_type=Pane, allow_none=True) def __init__(self, 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,): self.windowProtection = windowProtection self.showFormulas = showFormulas self.showGridLines = showGridLines self.showRowColHeaders = showRowColHeaders self.showZeros = showZeros self.rightToLeft = rightToLeft self.tabSelected = tabSelected self.showRuler = showRuler self.showOutlineSymbols = showOutlineSymbols self.defaultGridColor = defaultGridColor self.showWhiteSpace = showWhiteSpace self.view = view self.topLeftCell = topLeftCell self.colorId = colorId self.zoomScale = zoomScale self.zoomScaleNormal = zoomScaleNormal self.zoomScaleSheetLayoutView = zoomScaleSheetLayoutView self.zoomScalePageLayoutView = zoomScalePageLayoutView self.zoomToFit = zoomToFit self.workbookViewId = workbookViewId self.pane = pane if selection is None: selection = (Selection(), ) self.selection = selection
[docs] class SheetViewList(Serialisable): tagname = "sheetViews" sheetView = Sequence(expected_type=SheetView, ) extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = ('sheetView',) def __init__(self, sheetView=None, extLst=None, ): if sheetView is None: sheetView = [SheetView()] self.sheetView = sheetView @property def active(self): """ Returns the first sheet view which is assumed to be active """ return self.sheetView[0]