pivot.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # Copyright (c) 2010-2024 openpyxl
  2. from openpyxl.descriptors.serialisable import Serialisable
  3. from openpyxl.descriptors import (
  4. Alias,
  5. Typed,
  6. )
  7. from openpyxl.descriptors.nested import NestedInteger, NestedText
  8. from openpyxl.descriptors.excel import ExtensionList
  9. from .label import DataLabel
  10. from .marker import Marker
  11. from .shapes import GraphicalProperties
  12. from .text import RichText
  13. class PivotSource(Serialisable):
  14. tagname = "pivotSource"
  15. name = NestedText(expected_type=str)
  16. fmtId = NestedInteger(expected_type=int)
  17. extLst = Typed(expected_type=ExtensionList, allow_none=True)
  18. __elements__ = ('name', 'fmtId')
  19. def __init__(self,
  20. name=None,
  21. fmtId=None,
  22. extLst=None,
  23. ):
  24. self.name = name
  25. self.fmtId = fmtId
  26. class PivotFormat(Serialisable):
  27. tagname = "pivotFmt"
  28. idx = NestedInteger(nested=True)
  29. spPr = Typed(expected_type=GraphicalProperties, allow_none=True)
  30. graphicalProperties = Alias("spPr")
  31. txPr = Typed(expected_type=RichText, allow_none=True)
  32. TextBody = Alias("txPr")
  33. marker = Typed(expected_type=Marker, allow_none=True)
  34. dLbl = Typed(expected_type=DataLabel, allow_none=True)
  35. DataLabel = Alias("dLbl")
  36. extLst = Typed(expected_type=ExtensionList, allow_none=True)
  37. __elements__ = ('idx', 'spPr', 'txPr', 'marker', 'dLbl')
  38. def __init__(self,
  39. idx=0,
  40. spPr=None,
  41. txPr=None,
  42. marker=None,
  43. dLbl=None,
  44. extLst=None,
  45. ):
  46. self.idx = idx
  47. self.spPr = spPr
  48. self.txPr = txPr
  49. self.marker = marker
  50. self.dLbl = dLbl