diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/openpyxl/worksheet/page.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/openpyxl/worksheet/page.py | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/openpyxl/worksheet/page.py b/.venv/lib/python3.12/site-packages/openpyxl/worksheet/page.py new file mode 100644 index 00000000..7d630c2c --- /dev/null +++ b/.venv/lib/python3.12/site-packages/openpyxl/worksheet/page.py @@ -0,0 +1,174 @@ +# Copyright (c) 2010-2024 openpyxl + +from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.descriptors import ( + Float, + Bool, + Integer, + NoneSet, + ) +from openpyxl.descriptors.excel import UniversalMeasure, Relation + + +class PrintPageSetup(Serialisable): + """ Worksheet print page setup """ + + tagname = "pageSetup" + + orientation = NoneSet(values=("default", "portrait", "landscape")) + paperSize = Integer(allow_none=True) + scale = Integer(allow_none=True) + fitToHeight = Integer(allow_none=True) + fitToWidth = Integer(allow_none=True) + firstPageNumber = Integer(allow_none=True) + useFirstPageNumber = Bool(allow_none=True) + paperHeight = UniversalMeasure(allow_none=True) + paperWidth = UniversalMeasure(allow_none=True) + pageOrder = NoneSet(values=("downThenOver", "overThenDown")) + usePrinterDefaults = Bool(allow_none=True) + blackAndWhite = Bool(allow_none=True) + draft = Bool(allow_none=True) + cellComments = NoneSet(values=("asDisplayed", "atEnd")) + errors = NoneSet(values=("displayed", "blank", "dash", "NA")) + horizontalDpi = Integer(allow_none=True) + verticalDpi = Integer(allow_none=True) + copies = Integer(allow_none=True) + id = Relation() + + + def __init__(self, + worksheet=None, + orientation=None, + paperSize=None, + scale=None, + fitToHeight=None, + fitToWidth=None, + firstPageNumber=None, + useFirstPageNumber=None, + paperHeight=None, + paperWidth=None, + pageOrder=None, + usePrinterDefaults=None, + blackAndWhite=None, + draft=None, + cellComments=None, + errors=None, + horizontalDpi=None, + verticalDpi=None, + copies=None, + id=None): + self._parent = worksheet + self.orientation = orientation + self.paperSize = paperSize + self.scale = scale + self.fitToHeight = fitToHeight + self.fitToWidth = fitToWidth + self.firstPageNumber = firstPageNumber + self.useFirstPageNumber = useFirstPageNumber + self.paperHeight = paperHeight + self.paperWidth = paperWidth + self.pageOrder = pageOrder + self.usePrinterDefaults = usePrinterDefaults + self.blackAndWhite = blackAndWhite + self.draft = draft + self.cellComments = cellComments + self.errors = errors + self.horizontalDpi = horizontalDpi + self.verticalDpi = verticalDpi + self.copies = copies + self.id = id + + + def __bool__(self): + return bool(dict(self)) + + + + + @property + def sheet_properties(self): + """ + Proxy property + """ + return self._parent.sheet_properties.pageSetUpPr + + + @property + def fitToPage(self): + return self.sheet_properties.fitToPage + + + @fitToPage.setter + def fitToPage(self, value): + self.sheet_properties.fitToPage = value + + + @property + def autoPageBreaks(self): + return self.sheet_properties.autoPageBreaks + + + @autoPageBreaks.setter + def autoPageBreaks(self, value): + self.sheet_properties.autoPageBreaks = value + + + @classmethod + def from_tree(cls, node): + self = super().from_tree(node) + self.id = None # strip link to binary settings + return self + + +class PrintOptions(Serialisable): + """ Worksheet print options """ + + tagname = "printOptions" + horizontalCentered = Bool(allow_none=True) + verticalCentered = Bool(allow_none=True) + headings = Bool(allow_none=True) + gridLines = Bool(allow_none=True) + gridLinesSet = Bool(allow_none=True) + + def __init__(self, horizontalCentered=None, + verticalCentered=None, + headings=None, + gridLines=None, + gridLinesSet=None, + ): + self.horizontalCentered = horizontalCentered + self.verticalCentered = verticalCentered + self.headings = headings + self.gridLines = gridLines + self.gridLinesSet = gridLinesSet + + + def __bool__(self): + return bool(dict(self)) + + +class PageMargins(Serialisable): + """ + Information about page margins for view/print layouts. + Standard values (in inches) + left, right = 0.75 + top, bottom = 1 + header, footer = 0.5 + """ + tagname = "pageMargins" + + left = Float() + right = Float() + top = Float() + bottom = Float() + header = Float() + footer = Float() + + def __init__(self, left=0.75, right=0.75, top=1, bottom=1, header=0.5, + footer=0.5): + self.left = left + self.right = right + self.top = top + self.bottom = bottom + self.header = header + self.footer = footer |