Esempio n. 1
0
        public void Apply(SeriesFormatSequence seriesFormatSequence)
        {
            // find BRAI record for categories
            foreach (AiSequence aiSequence in seriesFormatSequence.AiSequences)
            {
                if (aiSequence.BRAI.braiId == BRAI.BraiId.SeriesCategory)
                {
                    BRAI brai = aiSequence.BRAI;

                    // don't create a c:cat node for automatically generated category axis data!
                    if (brai.rt != BRAI.DataSource.Automatic)
                    {
                        // c:cat (or c:xVal for scatter and bubble charts)
                        _writer.WriteStartElement(Dml.Chart.Prefix, this._parentElement, Dml.Chart.Ns);
                        {
                            switch (brai.rt)
                            {
                            case BRAI.DataSource.Literal:
                                // c:strLit
                                _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElStrLit, Dml.Chart.Ns);
                                {
                                    convertStringPoints(seriesFormatSequence);
                                }
                                _writer.WriteEndElement();
                                break;

                            case BRAI.DataSource.Reference:
                                // c:strRef
                                _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElStrRef, Dml.Chart.Ns);
                                {
                                    // c:f
                                    string formula = FormulaInfixMapping.mapFormula(brai.formula.formula, this.WorkbookContext);
                                    _writer.WriteElementString(Dml.Chart.Prefix, Dml.Chart.ElF, Dml.Chart.Ns, formula);

                                    // c:strCache
                                    _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElStrCache, Dml.Chart.Ns);
                                    {
                                        convertStringPoints(seriesFormatSequence);
                                    }
                                    _writer.WriteEndElement();
                                }
                                _writer.WriteEndElement();
                                break;
                            }
                        }
                        _writer.WriteEndElement(); // c:cat
                    }
                    break;
                }
            }
        }
Esempio n. 2
0
        public AiSequence(IStreamReader reader)
            : base(reader)
        {
            //AI = BRAI [SeriesText]

            //BRAI
            this.BRAI = (BRAI)BiffRecord.ReadRecord(reader);

            //[SeriesText]
            if (BiffRecord.GetNextRecordType(reader) == RecordType.SeriesText)
            {
                this.SeriesText = (SeriesText)BiffRecord.ReadRecord(reader);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// </summary>
        public void Apply(SeriesFormatSequence seriesFormatSequence)
        {
            // find BRAI record for values
            foreach (AiSequence aiSequence in seriesFormatSequence.AiSequences)
            {
                if (aiSequence.BRAI.braiId == BRAI.BraiId.SeriesValues)
                {
                    // c:val
                    _writer.WriteStartElement(Dml.Chart.Prefix, this._parentElement, Dml.Chart.Ns);
                    {
                        BRAI brai = aiSequence.BRAI;
                        switch (brai.rt)
                        {
                        case BRAI.DataSource.Literal:
                            // c:numLit
                            _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElNumLit, Dml.Chart.Ns);

                            convertNumData(seriesFormatSequence);

                            _writer.WriteEndElement();     // c:numLit
                            break;

                        case BRAI.DataSource.Reference:
                            // c:numRef
                            _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElNumRef, Dml.Chart.Ns);

                            // c:f
                            string formula = FormulaInfixMapping.mapFormula(brai.formula.formula, this.WorkbookContext);
                            _writer.WriteElementString(Dml.Chart.Prefix, Dml.Chart.ElF, Dml.Chart.Ns, formula);

                            // TODO: optional data cache
                            // c:numCache
                            _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElNumCache, Dml.Chart.Ns);
                            convertNumData(seriesFormatSequence);
                            _writer.WriteEndElement();     // c:numCache

                            _writer.WriteEndElement();     // c:numRef
                            break;
                        }
                    }
                    _writer.WriteEndElement(); // c:val
                    break;
                }
            }
        }
Esempio n. 4
0
        public void Apply(SeriesFormatSequence seriesFormatSequence)
        {
            // EG_SerShared

            // c:idx
            // TODO: check the meaning of this element
            writeValueElement(Dml.Chart.ElIdx, seriesFormatSequence.SerToCrt.id.ToString());

            // c:order
            writeValueElement(Dml.Chart.ElOrder, seriesFormatSequence.order.ToString());

            // c:tx
            // find BRAI record for series name
            foreach (AiSequence aiSequence in seriesFormatSequence.AiSequences)
            {
                if (aiSequence.BRAI.braiId == BRAI.BraiId.SeriesNameOrLegendText)
                {
                    BRAI brai = aiSequence.BRAI;

                    if (aiSequence.SeriesText != null)
                    {
                        switch (brai.rt)
                        {
                        case BRAI.DataSource.Literal:
                            // c:tx
                            _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElTx, Dml.Chart.Ns);
                            // c:v
                            _writer.WriteElementString(Dml.Chart.Prefix, Dml.Chart.ElV, Dml.Chart.Ns, aiSequence.SeriesText.stText.Value);
                            _writer.WriteEndElement();     // c:tx
                            break;

                        case BRAI.DataSource.Reference:
                            // c:tx
                            _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElTx, Dml.Chart.Ns);


                            // c:strRef
                            _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElStrRef, Dml.Chart.Ns);
                            {
                                // c:f
                                string formula = FormulaInfixMapping.mapFormula(brai.formula.formula, this.WorkbookContext);
                                _writer.WriteElementString(Dml.Chart.Prefix, Dml.Chart.ElF, Dml.Chart.Ns, formula);

                                // c:strCache
                                //convertStringCache(seriesFormatSequence);
                            }

                            _writer.WriteEndElement();     // c:strRef
                            _writer.WriteEndElement();     // c:tx
                            break;
                        }
                    }

                    break;
                }
            }

            if (seriesFormatSequence.SsSequence.Count > 0)
            {
                seriesFormatSequence.SsSequence[0].Convert(new ShapePropertiesMapping(this.WorkbookContext, this.ChartContext));
            }
        }