class View3D(Serialisable): tagname = "view3D" rotX = NestedMinMax(min=-90, max=90, allow_none=True) x_rotation = Alias('rotX') hPercent = NestedMinMax(min=5, max=500, allow_none=True) height_percent = Alias('hPercent') rotY = NestedInteger(min=-90, max=90, allow_none=True) y_rotation = Alias('rotY') depthPercent = NestedInteger(allow_none=True) rAngAx = NestedBool(allow_none=True) right_angle_axes = Alias('rAngAx') perspective = NestedInteger(allow_none=True) extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = ('rotX', 'hPercent', 'rotY', 'depthPercent', 'rAngAx', 'perspective',) def __init__(self, rotX=15, hPercent=None, rotY=20, depthPercent=None, rAngAx=True, perspective=None, extLst=None, ): self.rotX = rotX self.hPercent = hPercent self.rotY = rotY self.depthPercent = depthPercent self.rAngAx = rAngAx self.perspective = perspective
class TextAxis(_BaseAxis): tagname = "catAx" axId = _BaseAxis.axId scaling = _BaseAxis.scaling delete = _BaseAxis.delete axPos = _BaseAxis.axPos majorGridlines = _BaseAxis.majorGridlines minorGridlines = _BaseAxis.minorGridlines title = _BaseAxis.title numFmt = _BaseAxis.numFmt majorTickMark = _BaseAxis.majorTickMark minorTickMark = _BaseAxis.minorTickMark tickLblPos = _BaseAxis.tickLblPos spPr = _BaseAxis.spPr txPr = _BaseAxis.txPr crossAx = _BaseAxis.crossAx crosses = _BaseAxis.crosses crossesAt = _BaseAxis.crossesAt auto = NestedBool(allow_none=True) lblAlgn = NestedNoneSet(values=(['ctr', 'l', 'r'])) lblOffset = NestedMinMax(min=0, max=1000) tickLblSkip = NestedInteger(allow_none=True) tickMarkSkip = NestedInteger(allow_none=True) noMultiLvlLbl = NestedBool(allow_none=True) extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = _BaseAxis.__elements__ + ('auto', 'lblAlgn', 'lblOffset', 'tickLblSkip', 'tickMarkSkip', 'noMultiLvlLbl') def __init__(self, auto=None, lblAlgn=None, lblOffset=100, tickLblSkip=None, tickMarkSkip=None, noMultiLvlLbl=None, extLst=None, **kw ): self.auto = auto self.lblAlgn = lblAlgn self.lblOffset = lblOffset self.tickLblSkip = tickLblSkip self.tickMarkSkip = tickMarkSkip self.noMultiLvlLbl = noMultiLvlLbl kw.setdefault('axId', 10) kw.setdefault('crossAx', 100) super(TextAxis, self).__init__(**kw)
class Spacing(Serialisable): spcPct = NestedInteger(allow_none=True) spcPts = NestedInteger(allow_none=True) __elements__ = ('spcPct', 'spcPts') def __init__( self, spcPct=None, spcPts=None, ): self.spcPct = spcPct self.spcPts = spcPts
class Trendline(Serialisable): tagname = "trendline" name = String(allow_none=True) spPr = Typed(expected_type=GraphicalProperties, allow_none=True) graphicalProperties = Alias('spPr') trendlineType = NestedSet( values=(['exp', 'linear', 'log', 'movingAvg', 'poly', 'power'])) order = NestedInteger(allow_none=True) period = NestedInteger(allow_none=True) forward = NestedFloat(allow_none=True) backward = NestedFloat(allow_none=True) intercept = NestedFloat(allow_none=True) dispRSqr = NestedBool(allow_none=True) dispEq = NestedBool(allow_none=True) trendlineLbl = Typed(expected_type=TrendlineLabel, allow_none=True) extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = ('name', 'spPr', 'trendlineType', 'order', 'period', 'forward', 'backward', 'intercept', 'dispRSqr', 'dispEq', 'trendlineLbl') def __init__( self, name=None, spPr=None, trendlineType='linear', order=None, period=None, forward=None, backward=None, intercept=None, dispRSqr=None, dispEq=None, trendlineLbl=None, extLst=None, ): self.name = name self.spPr = spPr self.trendlineType = trendlineType self.order = order self.period = period self.forward = forward self.backward = backward self.intercept = intercept self.dispRSqr = dispRSqr self.dispEq = dispEq self.trendlineLbl = trendlineLbl
class PivotFormat(Serialisable): tagname = "pivotFmt" idx = NestedInteger(nested=True) spPr = Typed(expected_type=GraphicalProperties, allow_none=True) graphicalProperties = Alias("spPr") txPr = Typed(expected_type=RichText, allow_none=True) TextBody = Alias("txPr") marker = Typed(expected_type=Marker, allow_none=True) dLbl = Typed(expected_type=DataLabel, allow_none=True) DataLabel = Alias("dLbl") extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = ('idx', 'spPr', 'txPr', 'marker', 'dLbl') def __init__( self, idx=0, spPr=None, txPr=None, marker=None, dLbl=None, extLst=None, ): self.idx = idx self.spPr = spPr self.txPr = txPr self.marker = marker self.dLbl = dLbl
class RowColItem(Serialisable): tagname = "i" t = Set(values=([ 'data', 'default', 'sum', 'countA', 'avg', 'max', 'min', 'product', 'count', 'stdDev', 'stdDevP', 'var', 'varP', 'grand', 'blank' ])) r = Integer() i = Integer() x = NestedInteger(allow_none=True, attribute="v") __elements__ = ('x', ) def __init__( self, t="data", r=0, i=0, x=None, ): self.t = t self.r = r self.i = i self.x = x
class DateAxis(TextAxis): tagname = "dateAx" axId = _BaseAxis.axId scaling = _BaseAxis.scaling delete = _BaseAxis.delete axPos = _BaseAxis.axPos majorGridlines = _BaseAxis.majorGridlines minorGridlines = _BaseAxis.minorGridlines title = _BaseAxis.title numFmt = _BaseAxis.numFmt majorTickMark = _BaseAxis.majorTickMark minorTickMark = _BaseAxis.minorTickMark tickLblPos = _BaseAxis.tickLblPos spPr = _BaseAxis.spPr txPr = _BaseAxis.txPr crossAx = _BaseAxis.crossAx crosses = _BaseAxis.crosses crossesAt = _BaseAxis.crossesAt auto = NestedBool(allow_none=True) lblOffset = NestedInteger(allow_none=True) baseTimeUnit = NestedNoneSet(values=(['days', 'months', 'years'])) majorUnit = NestedFloat(allow_none=True) majorTimeUnit = NestedNoneSet(values=(['days', 'months', 'years'])) minorUnit = NestedFloat(allow_none=True) minorTimeUnit = NestedNoneSet(values=(['days', 'months', 'years'])) extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = _BaseAxis.__elements__ + ('auto', 'lblOffset', 'baseTimeUnit', 'majorUnit', 'majorTimeUnit', 'minorUnit', 'minorTimeUnit') def __init__(self, auto=None, lblOffset=None, baseTimeUnit=None, majorUnit=None, majorTimeUnit=None, minorUnit=None, minorTimeUnit=None, extLst=None, **kw ): self.auto = auto self.lblOffset = lblOffset self.baseTimeUnit = baseTimeUnit self.majorUnit = majorUnit self.majorTimeUnit = majorTimeUnit self.minorUnit = minorUnit self.minorTimeUnit = minorTimeUnit kw.setdefault('axId', 500) kw.setdefault('lblOffset', lblOffset) super(DateAxis, self).__init__(**kw)
class SeriesAxis(_BaseAxis): tagname = "serAx" axId = _BaseAxis.axId scaling = _BaseAxis.scaling delete = _BaseAxis.delete axPos = _BaseAxis.axPos majorGridlines = _BaseAxis.majorGridlines minorGridlines = _BaseAxis.minorGridlines title = _BaseAxis.title numFmt = _BaseAxis.numFmt majorTickMark = _BaseAxis.majorTickMark minorTickMark = _BaseAxis.minorTickMark tickLblPos = _BaseAxis.tickLblPos spPr = _BaseAxis.spPr txPr = _BaseAxis.txPr crossAx = _BaseAxis.crossAx crosses = _BaseAxis.crosses crossesAt = _BaseAxis.crossesAt tickLblSkip = NestedInteger(allow_none=True) tickMarkSkip = NestedInteger(allow_none=True) extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = _BaseAxis.__elements__ + ('tickLblSkip', 'tickMarkSkip') def __init__(self, tickLblSkip=None, tickMarkSkip=None, extLst=None, **kw ): self.tickLblSkip = tickLblSkip self.tickMarkSkip = tickMarkSkip kw.setdefault('axId', 1000) kw.setdefault('crossAx', 10) super(SeriesAxis, self).__init__(**kw)
class DataPoint(Serialisable): tagname = "dPt" idx = NestedInteger() invertIfNegative = NestedBool(allow_none=True) marker = Typed(expected_type=Marker, allow_none=True) bubble3D = NestedBool(allow_none=True) explosion = NestedInteger(allow_none=True) spPr = Typed(expected_type=GraphicalProperties, allow_none=True) graphicalProperties = Alias('spPr') pictureOptions = Typed(expected_type=PictureOptions, allow_none=True) extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = ('idx', 'invertIfNegative', 'marker', 'bubble3D', 'explosion', 'spPr', 'pictureOptions') def __init__( self, idx=None, invertIfNegative=None, marker=None, bubble3D=None, explosion=None, spPr=None, pictureOptions=None, extLst=None, ): self.idx = idx self.invertIfNegative = invertIfNegative self.marker = marker self.bubble3D = bubble3D self.explosion = explosion if spPr is None: spPr = GraphicalProperties() self.spPr = spPr self.pictureOptions = pictureOptions
class DiscretePr(Serialisable): tagname = "discretePr" count = Integer() x = NestedInteger(allow_none=True) __elements__ = ('x', ) def __init__( self, count=None, x=None, ): self.count = count self.x = x
class BandFormat(Serialisable): tagname = "bandFmt" idx = NestedInteger() spPr = Typed(expected_type=GraphicalProperties, allow_none=True) graphicalProperties = Alias("spPr") __elements__ = ('idx', 'spPr') def __init__( self, idx=0, spPr=None, ): self.idx = idx self.spPr = spPr
class StrData(Serialisable): tagname = "strData" ptCount = NestedInteger(allow_none=True) pt = Sequence(expected_type=StrVal) extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = ('ptCount', 'pt') def __init__( self, ptCount=None, pt=(), extLst=None, ): self.ptCount = ptCount self.pt = pt
class PivotSource(Serialisable): tagname = "pivotSource" name = NestedText(expected_type=unicode) fmtId = NestedInteger(expected_type=int) extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = ('name', 'fmtId') def __init__( self, name=None, fmtId=None, extLst=None, ): self.name = name self.fmtId = fmtId
class NumData(Serialisable): formatCode = NestedText(expected_type=unicode, allow_none=True) ptCount = NestedInteger(allow_none=True) pt = Sequence(expected_type=NumVal) extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = ('formatCode', 'ptCount', 'pt') def __init__( self, formatCode=None, ptCount=None, pt=(), extLst=None, ): self.formatCode = formatCode self.ptCount = ptCount self.pt = pt
class LegendEntry(Serialisable): tagname = "legendEntry" idx = NestedInteger() delete = NestedBool() txPr = Typed(expected_type=RichText, allow_none=True) extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = ('idx', 'delete', 'txPr') def __init__( self, idx=0, delete=False, txPr=None, extLst=None, ): self.idx = idx self.delete = delete self.txPr = txPr
class Surface(Serialisable): tagname = "surface" thickness = NestedInteger(allow_none=True) spPr = Typed(expected_type=GraphicalProperties, allow_none=True) graphicalProperties = Alias('spPr') pictureOptions = Typed(expected_type=PictureOptions, allow_none=True) extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = ('thickness', 'spPr', 'pictureOptions',) def __init__(self, thickness=None, spPr=None, pictureOptions=None, extLst=None, ): self.thickness = thickness self.spPr = spPr self.pictureOptions = pictureOptions
class ParagraphProperties(Serialisable): tagname = "pPr" namespace = DRAWING_NS marL = Integer(allow_none=True) marR = Integer(allow_none=True) lvl = Integer(allow_none=True) indent = Integer(allow_none=True) algn = NoneSet( values=(['l', 'ctr', 'r', 'just', 'justLow', 'dist', 'thaiDist'])) defTabSz = Integer(expected_type=Coordinate, allow_none=True) rtl = Bool(allow_none=True) eaLnBrk = Bool(allow_none=True) fontAlgn = NoneSet(values=(['auto', 't', 'ctr', 'base', 'b'])) latinLnBrk = Bool(allow_none=True) hangingPunct = Bool(allow_none=True) # uses element group EG_TextBulletColor # uses element group EG_TextBulletSize # uses element group EG_TextBulletTypeface # uses element group EG_TextBullet lnSpc = Typed(expected_type=Spacing, allow_none=True) spcBef = Typed(expected_type=Spacing, allow_none=True) spcAft = Typed(expected_type=Spacing, allow_none=True) tabLst = Typed(expected_type=TabStopList, allow_none=True) defRPr = Typed(expected_type=CharacterProperties, allow_none=True) extLst = Typed(expected_type=OfficeArtExtensionList, allow_none=True) buClrTx = EmptyTag() buClr = Typed(expected_type=Color, allow_none=True) buSzTx = EmptyTag() buSzPct = NestedInteger(allow_none=True) buSzPts = NestedInteger(allow_none=True) buFontTx = EmptyTag() buFont = Typed(expected_type=Font, allow_none=True) buNone = EmptyTag() buAutoNum = EmptyTag() buChar = NestedValue(expected_type=unicode, attribute="char", allow_none=True) buBlip = NestedValue(expected_type=Blip, attribute="blip", allow_none=True) __elements__ = ('lnSpc', 'spcBef', 'spcAft', 'tabLst', 'defRPr', 'buClrTx', 'buClr', 'buSzTx', 'buSzPct', 'buSzPts', 'buFontTx', 'buFont', 'buNone', 'buAutoNum', 'buChar', 'buBlip') def __init__( self, marL=None, marR=None, lvl=None, indent=None, algn=None, defTabSz=None, rtl=None, eaLnBrk=None, fontAlgn=None, latinLnBrk=None, hangingPunct=None, lnSpc=None, spcBef=None, spcAft=None, tabLst=None, defRPr=None, extLst=None, buClrTx=None, buClr=None, buSzTx=None, buSzPct=None, buSzPts=None, buFontTx=None, buFont=None, buNone=None, buAutoNum=None, buChar=None, buBlip=None, ): self.marL = marL self.marR = marR self.lvl = lvl self.indent = indent self.algn = algn self.defTabSz = defTabSz self.rtl = rtl self.eaLnBrk = eaLnBrk self.fontAlgn = fontAlgn self.latinLnBrk = latinLnBrk self.hangingPunct = hangingPunct self.lnSpc = lnSpc self.spcBef = spcBef self.spcAft = spcAft self.tabLst = tabLst self.defRPr = defRPr self.buClrTx = buClrTx self.buClr = buClr self.buSzTx = buSzTx self.buSzPct = buSzPct self.buSzPts = buSzPts self.buFontTx = buFontTx self.buFont = buFont self.buNone = buNone self.buAutoNum = buAutoNum self.buChar = buChar self.buBlip = buBlip self.defRPr = defRPr
class _BaseAxis(Serialisable): axId = NestedInteger(expected_type=int) scaling = Typed(expected_type=Scaling) delete = NestedBool(allow_none=True) axPos = NestedSet(values=(['b', 'l', 'r', 't'])) majorGridlines = Typed(expected_type=ChartLines, allow_none=True) minorGridlines = Typed(expected_type=ChartLines, allow_none=True) title = TitleDescriptor() numFmt = NumberFormatDescriptor() number_format = Alias("numFmt") majorTickMark = NestedNoneSet(values=(['cross', 'in', 'out']), to_tree=_explicit_none) minorTickMark = NestedNoneSet(values=(['cross', 'in', 'out']), to_tree=_explicit_none) tickLblPos = NestedNoneSet(values=(['high', 'low', 'nextTo'])) spPr = Typed(expected_type=GraphicalProperties, allow_none=True) graphicalProperties = Alias('spPr') txPr = Typed(expected_type=RichText, allow_none=True) textProperties = Alias('txPr') crossAx = NestedInteger(expected_type=int) # references other axis crosses = NestedNoneSet(values=(['autoZero', 'max', 'min'])) crossesAt = NestedFloat(allow_none=True) # crosses & crossesAt are mutually exclusive __elements__ = ('axId', 'scaling', 'delete', 'axPos', 'majorGridlines', 'minorGridlines', 'title', 'numFmt', 'majorTickMark', 'minorTickMark', 'tickLblPos', 'spPr', 'txPr', 'crossAx', 'crosses', 'crossesAt') def __init__(self, axId=None, scaling=None, delete=None, axPos='l', majorGridlines=None, minorGridlines=None, title=None, numFmt=None, majorTickMark=None, minorTickMark=None, tickLblPos=None, spPr=None, txPr= None, crossAx=None, crosses=None, crossesAt=None, ): self.axId = axId if scaling is None: scaling = Scaling() self.scaling = scaling self.delete = delete self.axPos = axPos self.majorGridlines = majorGridlines self.minorGridlines = minorGridlines self.title = title self.numFmt = numFmt self.majorTickMark = majorTickMark self.minorTickMark = minorTickMark self.tickLblPos = tickLblPos self.spPr = spPr self.txPr = txPr self.crossAx = crossAx self.crosses = crosses self.crossesAt = None
class RichTextProperties(Serialisable): tagname = "bodyPr" namespace = DRAWING_NS rot = Integer(allow_none=True) spcFirstLastPara = Bool(allow_none=True) vertOverflow = NoneSet(values=(['overflow', 'ellipsis', 'clip'])) horzOverflow = NoneSet(values=(['overflow', 'clip'])) vert = NoneSet(values=([ 'horz', 'vert', 'vert270', 'wordArtVert', 'eaVert', 'mongolianVert', 'wordArtVertRtl' ])) wrap = NoneSet(values=(['none', 'square'])) lIns = Integer(allow_none=True) tIns = Integer(allow_none=True) rIns = Integer(allow_none=True) bIns = Integer(allow_none=True) numCol = Integer(allow_none=True) spcCol = Integer(allow_none=True) rtlCol = Bool(allow_none=True) fromWordArt = Bool(allow_none=True) anchor = NoneSet(values=(['t', 'ctr', 'b', 'just', 'dist'])) anchorCtr = Bool(allow_none=True) forceAA = Bool(allow_none=True) upright = Bool(allow_none=True) compatLnSpc = Bool(allow_none=True) prstTxWarp = Typed(expected_type=PresetTextShape, allow_none=True) scene3d = Typed(expected_type=Scene3D, allow_none=True) extLst = Typed(expected_type=OfficeArtExtensionList, allow_none=True) noAutofit = EmptyTag() normAutofit = EmptyTag() spAutoFit = EmptyTag() flatTx = NestedInteger(attribute="z", allow_none=True) __elements__ = ('prstTxWarp', 'scene3d', 'noAutofit', 'normAutofit', 'spAutoFit') def __init__( self, rot=None, spcFirstLastPara=None, vertOverflow=None, horzOverflow=None, vert=None, wrap=None, lIns=None, tIns=None, rIns=None, bIns=None, numCol=None, spcCol=None, rtlCol=None, fromWordArt=None, anchor=None, anchorCtr=None, forceAA=None, upright=None, compatLnSpc=None, prstTxWarp=None, scene3d=None, extLst=None, noAutofit=None, normAutofit=None, spAutoFit=None, flatTx=None, ): self.rot = rot self.spcFirstLastPara = spcFirstLastPara self.vertOverflow = vertOverflow self.horzOverflow = horzOverflow self.vert = vert self.wrap = wrap self.lIns = lIns self.tIns = tIns self.rIns = rIns self.bIns = bIns self.numCol = numCol self.spcCol = spcCol self.rtlCol = rtlCol self.fromWordArt = fromWordArt self.anchor = anchor self.anchorCtr = anchorCtr self.forceAA = forceAA self.upright = upright self.compatLnSpc = compatLnSpc self.prstTxWarp = prstTxWarp self.scene3d = scene3d self.noAutofit = noAutofit self.normAutofit = normAutofit self.spAutoFit = spAutoFit self.flatTx = flatTx
class Font(Serialisable): """Font options used in styles.""" UNDERLINE_DOUBLE = 'double' UNDERLINE_DOUBLE_ACCOUNTING = 'doubleAccounting' UNDERLINE_SINGLE = 'single' UNDERLINE_SINGLE_ACCOUNTING = 'singleAccounting' name = NestedString(allow_none=True) charset = NestedInteger(allow_none=True) family = NestedMinMax(min=0, max=14, allow_none=True) sz = NestedFloat(allow_none=True) size = Alias("sz") b = NestedBool(to_tree=_no_value) bold = Alias("b") i = NestedBool(to_tree=_no_value) italic = Alias("i") strike = NestedBool(allow_none=True) strikethrough = Alias("strike") outline = NestedBool(allow_none=True) shadow = NestedBool(allow_none=True) condense = NestedBool(allow_none=True) extend = NestedBool(allow_none=True) u = NestedNoneSet(values=('single', 'double', 'singleAccounting', 'doubleAccounting')) underline = Alias("u") vertAlign = NestedNoneSet(values=('superscript', 'subscript', 'baseline')) color = ColorDescriptor(allow_none=True) scheme = NestedNoneSet(values=("major", "minor")) tagname = "font" __elements__ = ('name', 'charset', 'family', 'b', 'i', 'strike', 'outline', 'shadow', 'condense', 'color', 'extend', 'sz', 'u', 'vertAlign', 'scheme') def __init__(self, name=None, sz=None, b=None, i=None, charset=None, u=None, strike=None, color=None, scheme=None, family=None, size=None, bold=None, italic=None, strikethrough=None, underline=None, vertAlign=None, outline=None, shadow=None, condense=None, extend=None): self.name = name self.family = family if size is not None: sz = size self.sz = sz if bold is not None: b = bold self.b = b if italic is not None: i = italic self.i = i if underline is not None: u = underline self.u = u if strikethrough is not None: strike = strikethrough self.strike = strike self.color = color self.vertAlign = vertAlign self.charset = charset self.outline = outline self.shadow = shadow self.condense = condense self.extend = extend self.scheme = scheme @classmethod def from_tree(cls, node): """ Set default value for underline if child element is present """ underline = node.find("{%s}u" % SHEET_MAIN_NS) if underline is not None and underline.get('val') is None: underline.set("val", "single") return super(Font, cls).from_tree(node)
class CacheField(Serialisable): tagname = "cacheField" sharedItems = Typed(expected_type=SharedItems, allow_none=True) fieldGroup = Typed(expected_type=FieldGroup, allow_none=True) mpMap = NestedInteger(allow_none=True, attribute="v") extLst = Typed(expected_type=ExtensionList, allow_none=True) name = String() caption = String(allow_none=True) propertyName = String(allow_none=True) serverField = Bool(allow_none=True) uniqueList = Bool(allow_none=True) numFmtId = Integer(allow_none=True) formula = String(allow_none=True) sqlType = Integer(allow_none=True) hierarchy = Integer(allow_none=True) level = Integer(allow_none=True) databaseField = Bool(allow_none=True) mappingCount = Integer(allow_none=True) memberPropertyField = Bool(allow_none=True) __elements__ = ('sharedItems', 'fieldGroup', 'mpMap') def __init__( self, sharedItems=None, fieldGroup=None, mpMap=None, extLst=None, name=None, caption=None, propertyName=None, serverField=None, uniqueList=True, numFmtId=None, formula=None, sqlType=0, hierarchy=0, level=0, databaseField=True, mappingCount=None, memberPropertyField=None, ): self.sharedItems = sharedItems self.fieldGroup = fieldGroup self.mpMap = mpMap self.extLst = extLst self.name = name self.caption = caption self.propertyName = propertyName self.serverField = serverField self.uniqueList = uniqueList self.numFmtId = numFmtId self.formula = formula self.sqlType = sqlType self.hierarchy = hierarchy self.level = level self.databaseField = databaseField self.mappingCount = mappingCount self.memberPropertyField = memberPropertyField
class LineProperties(Serialisable): tagname = "ln" namespace = DRAWING_NS w = MinMax(min=0, max=20116800, allow_none=True) # EMU width = Alias('w') cap = NoneSet(values=(['rnd', 'sq', 'flat'])) cmpd = NoneSet(values=(['sng', 'dbl', 'thickThin', 'thinThick', 'tri'])) algn = NoneSet(values=(['ctr', 'in'])) noFill = EmptyTag() solidFill = ColorChoiceDescriptor() gradFill = Typed(expected_type=GradientFillProperties, allow_none=True) pattFill = Typed(expected_type=PatternFillProperties, allow_none=True) prstDash = NestedNoneSet(values=([ 'solid', 'dot', 'dash', 'lgDash', 'dashDot', 'lgDashDot', 'lgDashDotDot', 'sysDash', 'sysDot', 'sysDashDot', 'sysDashDotDot' ]), namespace=namespace) dashStyle = Alias('prstDash') custDash = Typed(expected_type=DashStop, allow_none=True) round = EmptyTag() bevel = EmptyTag() miter = NestedInteger(allow_none=True, attribute="lim") headEnd = Typed(expected_type=LineEndProperties, allow_none=True) tailEnd = Typed(expected_type=LineEndProperties, allow_none=True) extLst = Typed(expected_type=OfficeArtExtensionList, allow_none=True) __elements__ = ('noFill', 'solidFill', 'gradFill', 'pattFill', 'prstDash', 'custDash', 'round', 'bevel', 'miter', 'headEnd', 'tailEnd') def __init__( self, w=None, cap=None, cmpd=None, algn=None, noFill=None, solidFill=None, gradFill=None, pattFill=None, prstDash=None, custDash=None, round=None, bevel=None, miter=None, headEnd=None, tailEnd=None, extLst=None, ): self.w = w self.cap = cap self.cmpd = cmpd self.algn = algn self.noFill = noFill self.solidFill = solidFill self.gradFill = gradFill self.pattFill = pattFill if prstDash is None: prstDash = "solid" self.prstDash = prstDash self.custDash = custDash self.round = round self.bevel = bevel self.miter = miter self.headEnd = headEnd self.tailEnd = tailEnd
class Series(Serialisable): """ Generic series object. Should not be instantiated directly. User the chart.Series factory instead. """ tagname = "ser" idx = NestedInteger() order = NestedInteger() tx = Typed(expected_type=SeriesLabel, allow_none=True) title = Alias('tx') spPr = Typed(expected_type=GraphicalProperties, allow_none=True) graphicalProperties = Alias('spPr') # area chart pictureOptions = Typed(expected_type=PictureOptions, allow_none=True) dPt = Sequence(expected_type=DataPoint, allow_none=True) data_points = Alias("dPt") dLbls = Typed(expected_type=DataLabelList, allow_none=True) labels = Alias("dLbls") trendline = Typed(expected_type=Trendline, allow_none=True) errBars = Typed(expected_type=ErrorBars, allow_none=True) cat = Typed(expected_type=AxDataSource, allow_none=True) identifiers = Alias("cat") val = Typed(expected_type=NumDataSource, allow_none=True) extLst = Typed(expected_type=ExtensionList, allow_none=True) #bar chart invertIfNegative = NestedBool(allow_none=True) shape = NestedNoneSet(values=( ['cone', 'coneToMax', 'box', 'cylinder', 'pyramid', 'pyramidToMax'])) #bubble chart xVal = Typed(expected_type=AxDataSource, allow_none=True) yVal = Typed(expected_type=NumDataSource, allow_none=True) bubbleSize = Typed(expected_type=NumDataSource, allow_none=True) zVal = Alias("bubbleSize") bubble3D = NestedBool(allow_none=True) #line chart marker = Typed(expected_type=Marker, allow_none=True) smooth = NestedBool(allow_none=True) #pie chart explosion = NestedInteger(allow_none=True) __elements__ = () def __init__( self, idx=0, order=0, tx=None, spPr=None, pictureOptions=None, dPt=(), dLbls=None, trendline=None, errBars=None, cat=None, val=None, invertIfNegative=None, shape=None, xVal=None, yVal=None, bubbleSize=None, bubble3D=None, marker=None, smooth=None, explosion=None, extLst=None, ): self.idx = idx self.order = order self.tx = tx if spPr is None: spPr = GraphicalProperties() self.spPr = spPr self.pictureOptions = pictureOptions self.dPt = dPt self.dLbls = dLbls self.trendline = trendline self.errBars = errBars self.cat = cat self.val = val self.invertIfNegative = invertIfNegative self.shape = shape self.xVal = xVal self.yVal = yVal self.bubbleSize = bubbleSize self.bubble3D = bubble3D if marker is None: marker = Marker() self.marker = marker self.smooth = smooth self.explosion = explosion def to_tree(self, tagname=None, idx=None): if idx is not None: if self.order == self.idx: self.order = idx self.idx = idx return super(Series, self).to_tree(tagname)
class Reference(Serialisable): tagname = "reference" field = Integer(allow_none=True) selected = Bool(allow_none=True) byPosition = Bool(allow_none=True) relative = Bool(allow_none=True) defaultSubtotal = Bool(allow_none=True) sumSubtotal = Bool(allow_none=True) countASubtotal = Bool(allow_none=True) avgSubtotal = Bool(allow_none=True) maxSubtotal = Bool(allow_none=True) minSubtotal = Bool(allow_none=True) productSubtotal = Bool(allow_none=True) countSubtotal = Bool(allow_none=True) stdDevSubtotal = Bool(allow_none=True) stdDevPSubtotal = Bool(allow_none=True) varSubtotal = Bool(allow_none=True) varPSubtotal = Bool(allow_none=True) x = NestedInteger(allow_none=True, attribute="v") extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = ('x', ) def __init__( self, field=None, count=None, selected=None, byPosition=None, relative=None, defaultSubtotal=None, sumSubtotal=None, countASubtotal=None, avgSubtotal=None, maxSubtotal=None, minSubtotal=None, productSubtotal=None, countSubtotal=None, stdDevSubtotal=None, stdDevPSubtotal=None, varSubtotal=None, varPSubtotal=None, x=None, extLst=None, ): self.field = field self.selected = selected self.byPosition = byPosition self.relative = relative self.defaultSubtotal = defaultSubtotal self.sumSubtotal = sumSubtotal self.countASubtotal = countASubtotal self.avgSubtotal = avgSubtotal self.maxSubtotal = maxSubtotal self.minSubtotal = minSubtotal self.productSubtotal = productSubtotal self.countSubtotal = countSubtotal self.stdDevSubtotal = stdDevSubtotal self.stdDevPSubtotal = stdDevPSubtotal self.varSubtotal = varSubtotal self.varPSubtotal = varPSubtotal self.x = x @property def count(self): return len(self.field)