123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- from __future__ import absolute_import
- # Copyright (c) 2010-2019 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))
- __nonzero__ = __bool__
- @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(PrintPageSetup, cls).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))
- __nonzero__ = __bool__
- 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
|