legend.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. # Copyright (c) 2010-2019 openpyxl
  2. from openpyxl.descriptors.serialisable import Serialisable
  3. from openpyxl.descriptors import (
  4. Typed,
  5. Integer,
  6. Alias,
  7. Sequence,
  8. )
  9. from openpyxl.descriptors.excel import ExtensionList
  10. from openpyxl.descriptors.nested import (
  11. NestedBool,
  12. NestedSet,
  13. NestedInteger
  14. )
  15. from .layout import Layout
  16. from .shapes import GraphicalProperties
  17. from .text import RichText
  18. class LegendEntry(Serialisable):
  19. tagname = "legendEntry"
  20. idx = NestedInteger()
  21. delete = NestedBool()
  22. txPr = Typed(expected_type=RichText, allow_none=True)
  23. extLst = Typed(expected_type=ExtensionList, allow_none=True)
  24. __elements__ = ('idx', 'delete', 'txPr')
  25. def __init__(self,
  26. idx=0,
  27. delete=False,
  28. txPr=None,
  29. extLst=None,
  30. ):
  31. self.idx = idx
  32. self.delete = delete
  33. self.txPr = txPr
  34. class Legend(Serialisable):
  35. tagname = "legend"
  36. legendPos = NestedSet(values=(['b', 'tr', 'l', 'r', 't']))
  37. position = Alias('legendPos')
  38. legendEntry = Sequence(expected_type=LegendEntry)
  39. layout = Typed(expected_type=Layout, allow_none=True)
  40. overlay = NestedBool(allow_none=True)
  41. spPr = Typed(expected_type=GraphicalProperties, allow_none=True)
  42. graphicalProperties = Alias('spPr')
  43. txPr = Typed(expected_type=RichText, allow_none=True)
  44. textProperties = Alias('txPr')
  45. extLst = Typed(expected_type=ExtensionList, allow_none=True)
  46. __elements__ = ('legendPos', 'legendEntry', 'layout', 'overlay', 'spPr', 'txPr',)
  47. def __init__(self,
  48. legendPos="r",
  49. legendEntry=(),
  50. layout=None,
  51. overlay=None,
  52. spPr=None,
  53. txPr=None,
  54. extLst=None,
  55. ):
  56. self.legendPos = legendPos
  57. self.legendEntry = legendEntry
  58. self.layout = layout
  59. self.overlay = overlay
  60. self.spPr = spPr
  61. self.txPr = txPr