public override void Apply(CrtSequence crtSequence) { if (!(crtSequence.ChartType is Surf)) { throw new Exception("Invalid chart type"); } Surf surf = crtSequence.ChartType as Surf; // c:surfaceChart _writer.WriteStartElement(Dml.Chart.Prefix, this._is3DChart ? Dml.Chart.ElSurface3DChart : Dml.Chart.ElSurfaceChart, Dml.Chart.Ns); { // EG_SurfaceChartShared // c:wireframe // Surface Chart Series (CT_SurfaceSer) foreach (SeriesFormatSequence seriesFormatSequence in this.ChartFormatsSequence.SeriesFormatSequences) { if (seriesFormatSequence.SerToCrt != null && seriesFormatSequence.SerToCrt.id == crtSequence.ChartFormat.idx) { // c:ser _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElSer, Dml.Chart.Ns); // EG_SerShared seriesFormatSequence.Convert(new SeriesMapping(this.WorkbookContext, this.ChartContext)); // c:cat seriesFormatSequence.Convert(new CatMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElCat)); // c:val seriesFormatSequence.Convert(new ValMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElVal)); _writer.WriteEndElement(); // c:ser } } // c:bandFmts // c:axId foreach (int axisId in crtSequence.ChartFormat.AxisIds) { writeValueElement(Dml.Chart.ElAxId, axisId.ToString()); } } _writer.WriteEndElement(); }
public override void Apply(CrtSequence crtSequence) { if (!(crtSequence.ChartType is BopPop)) { throw new Exception("Invalid chart type"); } var bopPop = crtSequence.ChartType as BopPop; // c:ofPieChart this._writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElOfPieChart, Dml.Chart.Ns); { // Axis Ids foreach (int axisId in crtSequence.ChartFormat.AxisIds) { writeValueElement(Dml.Chart.ElAxId, axisId.ToString()); } } this._writer.WriteEndElement(); }
public override void Apply(CrtSequence crtSequence) { if (!(crtSequence.ChartType is Line)) { throw new Exception("Invalid chart type"); } var line = crtSequence.ChartType as Line; // c:lineChart or c:stockChart this._writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElLineChart, Dml.Chart.Ns); { // EG_LineChartShared // c:grouping string grouping = line.fStacked ? "stacked" : line.f100 ? "percentStacked" : "standard"; writeValueElement(Dml.Chart.ElGrouping, grouping); // c:varyColors writeValueElement(Dml.Chart.ElVaryColors, crtSequence.ChartFormat.fVaried ? "1" : "0"); // Line Chart Series foreach (var seriesFormatSequence in this.ChartFormatsSequence.SeriesFormatSequences) { if (seriesFormatSequence.SerToCrt != null && seriesFormatSequence.SerToCrt.id == crtSequence.ChartFormat.idx) { // c:ser this._writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElSer, Dml.Chart.Ns); // EG_SerShared seriesFormatSequence.Convert(new SeriesMapping(this.WorkbookContext, this.ChartContext)); // c:marker // c:dPt for (int i = 1; i < seriesFormatSequence.SsSequence.Count; i++) { // write a dPt for each SsSequence var ssSequence = seriesFormatSequence.SsSequence[i]; ssSequence.Convert(new DataPointMapping(this.WorkbookContext, this.ChartContext, i - 1)); } // c:dLbls (Data Labels) this.ChartFormatsSequence.Convert(new DataLabelMapping(this.WorkbookContext, this.ChartContext, seriesFormatSequence)); // c:trendline // c:errBars // c:cat // c:val seriesFormatSequence.Convert(new ValMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElVal)); // c:smooth // c:shape this._writer.WriteEndElement(); // c:ser } } // c:dLbls // dropLines // End EG_LineChartShared if (this.Is3DChart) { // c:gapDepth } else { // c:hiLowLines // c:upDownBars // c:marker // c:smooth } // c:axId foreach (int axisId in crtSequence.ChartFormat.AxisIds) { writeValueElement(Dml.Chart.ElAxId, axisId.ToString()); } } this._writer.WriteEndElement(); }
public override void Apply(CrtSequence crtSequence) { if (!(crtSequence.ChartType is Pie)) { throw new Exception("Invalid chart type"); } var pie = crtSequence.ChartType as Pie; bool isDoughnutChart = (pie.pcDonut != 0); string chartType = this._is3DChart ? Dml.Chart.ElPie3DChart : Dml.Chart.ElPieChart; if (isDoughnutChart) { chartType = Dml.Chart.ElDoughnutChart; } // c:pieChart or c:pie3DChart or c:doughnutChart this._writer.WriteStartElement(Dml.Chart.Prefix, chartType, Dml.Chart.Ns); { // EG_PieChartShared // varyColors writeValueElement("varyColors", crtSequence.ChartFormat.fVaried ? "1" : "0"); // Pie Chart Series (CT_PieSer) foreach (var seriesFormatSequence in this.ChartFormatsSequence.SeriesFormatSequences) { if (seriesFormatSequence.SerToCrt != null && seriesFormatSequence.SerToCrt.id == crtSequence.ChartFormat.idx) { // c:ser this._writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElSer, Dml.Chart.Ns); // EG_SerShared seriesFormatSequence.Convert(new SeriesMapping(this.WorkbookContext, this.ChartContext)); // c:explosion var sssBase = seriesFormatSequence.SsSequence[0]; if (sssBase.PieFormat != null) { writeValueElement("explosion", sssBase.PieFormat.pcExplode.ToString()); } // c:dPt (Data Points) for (int i = 1; i < seriesFormatSequence.SsSequence.Count; i++) { // write a dPt for each SsSequence var sss = seriesFormatSequence.SsSequence[i]; sss.Convert(new DataPointMapping(this.WorkbookContext, this.ChartContext, i - 1)); } // c:dLbls (Data Labels) this.ChartFormatsSequence.Convert(new DataLabelMapping(this.WorkbookContext, this.ChartContext, seriesFormatSequence)); // c:cat seriesFormatSequence.Convert(new CatMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElCat)); // c:val seriesFormatSequence.Convert(new ValMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElVal)); this._writer.WriteEndElement(); // c:ser } } if (!this.Is3DChart) { // c:firstSliceAng writeValueElement("firstSliceAng", pie.anStart.ToString()); } if (isDoughnutChart) { // c:holeSize } } this._writer.WriteEndElement(); }
public override void Apply(CrtSequence crtSequence) { if (!(crtSequence.ChartType is Scatter)) { throw new Exception("Invalid chart type"); } var scatter = crtSequence.ChartType as Scatter; // c:scatterChart this._writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElScatterChart, Dml.Chart.Ns); { // c:scatterStyle writeValueElement(Dml.Chart.Prefix, Dml.Chart.ElScatterStyle, Dml.Chart.Ns, mapScatterStyle(crtSequence.SsSequence)); // c:varyColors //writeValueElement(Dml.Chart.ElVaryColors, crtSequence.ChartFormat.fVaried ? "1" : "0"); foreach (var seriesFormatSequence in this.ChartFormatsSequence.SeriesFormatSequences) { if (seriesFormatSequence.SerToCrt != null && seriesFormatSequence.SerToCrt.id == crtSequence.ChartFormat.idx) { // c:ser (CT_ScatterSer) // c:ser this._writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElSer, Dml.Chart.Ns); // EG_SerShared seriesFormatSequence.Convert(new SeriesMapping(this.WorkbookContext, this.ChartContext)); // c:marker // c:dPt // c:dLbls (CT_DLbls) this.ChartFormatsSequence.Convert(new DataLabelMapping(this.WorkbookContext, this.ChartContext, seriesFormatSequence)); // c:trendline // c:errBars // c:xVal seriesFormatSequence.Convert(new CatMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElXVal)); // c:yVal seriesFormatSequence.Convert(new ValMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElYVal)); // c:smooth writeValueElement(Dml.Chart.Prefix, Dml.Chart.ElSmooth, Dml.Chart.Ns, isSmoothed(crtSequence.SsSequence) ? "1" : "0"); this._writer.WriteEndElement(); // c:ser } } // Data Labels // Axis Ids foreach (int axisId in crtSequence.ChartFormat.AxisIds) { writeValueElement(Dml.Chart.ElAxId, axisId.ToString()); } } this._writer.WriteEndElement(); }
public override void Apply(CrtSequence crtSequence) { if (!(crtSequence.ChartType is Area)) { throw new Exception("Invalid chart type"); } Area area = crtSequence.ChartType as Area; // c:areaChart / c:area3DChart _writer.WriteStartElement(Dml.Chart.Prefix, this.Is3DChart ? Dml.Chart.ElArea3DChart : Dml.Chart.ElAreaChart, Dml.Chart.Ns); { // EG_AreaChartShared // CT_Grouping // c:varyColors: This setting needs to be ignored if the chart has //writeValueElement(Dml.Chart.ElVaryColors, crtSequence.ChartFormat.fVaried ? "1" : "0"); // Area Chart Series (CT_AreaSer) foreach (SeriesFormatSequence seriesFormatSequence in this.ChartFormatsSequence.SeriesFormatSequences) { if (seriesFormatSequence.SerToCrt != null && seriesFormatSequence.SerToCrt.id == crtSequence.ChartFormat.idx) { // c:ser _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElSer, Dml.Chart.Ns); // EG_SerShared seriesFormatSequence.Convert(new SeriesMapping(this.WorkbookContext, this.ChartContext)); // c:pictureOptions (CT_PictureOptions) // c:dPt (Data Points) for (int i = 1; i < seriesFormatSequence.SsSequence.Count; i++) { // write a dPt for each SsSequence SsSequence ssSequence = seriesFormatSequence.SsSequence[i]; ssSequence.Convert(new DataPointMapping(this.WorkbookContext, this.ChartContext, i - 1)); } // c:dLbls (Data Labels) this.ChartFormatsSequence.Convert(new DataLabelMapping(this.WorkbookContext, this.ChartContext, seriesFormatSequence)); // c:trendline // c:errBars // c:cat (Category Axis Data) seriesFormatSequence.Convert(new CatMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElCat)); // c:val seriesFormatSequence.Convert(new ValMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElVal)); _writer.WriteEndElement(); // c:ser } } // c:dLbls (Data Labels) // c:dropLines if (this.Is3DChart) { // c:gapDepth } // Axis Ids foreach (int axisId in crtSequence.ChartFormat.AxisIds) { writeValueElement(Dml.Chart.ElAxId, axisId.ToString()); } } _writer.WriteEndElement(); }
public override void Apply(CrtSequence crtSequence) { if (!(crtSequence.ChartType is Scatter)) { throw new Exception("Invalid chart type"); } Scatter scatter = crtSequence.ChartType as Scatter; // c:bubbleChart _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElBubbleChart, Dml.Chart.Ns); { // c:varyColors: This setting needs to be ignored if the chart has //writeValueElement(Dml.Chart.ElVaryColors, crtSequence.ChartFormat.fVaried ? "1" : "0"); // Bubble Chart Series foreach (SeriesFormatSequence seriesFormatSequence in this.ChartFormatsSequence.SeriesFormatSequences) { if (seriesFormatSequence.SerToCrt != null && seriesFormatSequence.SerToCrt.id == crtSequence.ChartFormat.idx) { // c:ser _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElSer, Dml.Chart.Ns); // EG_SerShared seriesFormatSequence.Convert(new SeriesMapping(this.WorkbookContext, this.ChartContext)); // c:dPt // c:dLbls (CT_DLbls) this.ChartFormatsSequence.Convert(new DataLabelMapping(this.WorkbookContext, this.ChartContext, seriesFormatSequence)); // c:trendline // c:errBars // c:xVal seriesFormatSequence.Convert(new CatMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElXVal)); // c:yVal seriesFormatSequence.Convert(new ValMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElYVal)); // c:bubbleSize // c:bubble3D _writer.WriteEndElement(); // c:ser } } // c:dLbls // c:bubble3D // c:bubbleScale // c:showNegBubbles // c:sizeRepresents // Axis Ids foreach (int axisId in crtSequence.ChartFormat.AxisIds) { writeValueElement(Dml.Chart.ElAxId, axisId.ToString()); } } _writer.WriteEndElement(); }
public override void Apply(CrtSequence crtSequence) { if (!(crtSequence.ChartType is Radar)) { throw new Exception("Invalid chart type"); } var radar = crtSequence.ChartType as Radar; // c:radarChart this._writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElRadarChart, Dml.Chart.Ns); { // c:radarStyle writeValueElement(Dml.Chart.ElRadarStyle, mapRadarStyle(crtSequence.SsSequence)); // c:varyColors: This setting needs to be ignored if the chart has //writeValueElement(Dml.Chart.ElVaryColors, crtSequence.ChartFormat.fVaried ? "1" : "0"); // Radar Chart Series (CT_RadarSer) foreach (var seriesFormatSequence in this.ChartFormatsSequence.SeriesFormatSequences) { if (seriesFormatSequence.SerToCrt != null && seriesFormatSequence.SerToCrt.id == crtSequence.ChartFormat.idx) { // c:ser this._writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElSer, Dml.Chart.Ns); // EG_SerShared seriesFormatSequence.Convert(new SeriesMapping(this.WorkbookContext, this.ChartContext)); // c:marker // c:dPt (Data Points) for (int i = 1; i < seriesFormatSequence.SsSequence.Count; i++) { // write a dPt for each SsSequence var sss = seriesFormatSequence.SsSequence[i]; sss.Convert(new DataPointMapping(this.WorkbookContext, this.ChartContext, i - 1)); } // c:dLbls (Data Labels) this.ChartFormatsSequence.Convert(new DataLabelMapping(this.WorkbookContext, this.ChartContext, seriesFormatSequence)); // c:cat (Category Axis Data) seriesFormatSequence.Convert(new CatMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElCat)); // c:val seriesFormatSequence.Convert(new ValMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElVal)); this._writer.WriteEndElement(); // c:ser } } // Data Labels // Axis Ids foreach (int axisId in crtSequence.ChartFormat.AxisIds) { writeValueElement(Dml.Chart.ElAxId, axisId.ToString()); } } this._writer.WriteEndElement(); }
public override void Apply(CrtSequence crtSequence) { if (!(crtSequence.ChartType is Bar)) { throw new Exception("Invalid chart type"); } Bar bar = crtSequence.ChartType as Bar; // c:barChart / c:bar3DChart _writer.WriteStartElement(Dml.Chart.Prefix, this._is3DChart ? Dml.Chart.ElBar3DChart : Dml.Chart.ElBarChart, Dml.Chart.Ns); { // EG_BarChartShared // c:barDir writeValueElement(Dml.Chart.ElBarDir, bar.fTranspose ? "bar" : "col"); // c:grouping string grouping = bar.fStacked ? "stacked" : bar.f100 ? "percentStacked" : this.Is3DChart && !crtSequence.Chart3d.fCluster ? "standard" : "clustered"; writeValueElement(Dml.Chart.ElGrouping, grouping); // c:varyColors: This setting needs to be ignored if the chart has //writeValueElement(Dml.Chart.ElVaryColors, crtSequence.ChartFormat.fVaried ? "1" : "0"); // Bar Chart Series foreach (SeriesFormatSequence seriesFormatSequence in this.ChartFormatsSequence.SeriesFormatSequences) { if (seriesFormatSequence.SerToCrt != null && seriesFormatSequence.SerToCrt.id == crtSequence.ChartFormat.idx) { // c:ser _writer.WriteStartElement(Dml.Chart.Prefix, Dml.Chart.ElSer, Dml.Chart.Ns); // EG_SerShared seriesFormatSequence.Convert(new SeriesMapping(this.WorkbookContext, this.ChartContext)); // c:invertIfNegative (stored in AreaFormat) // c:pictureOptions // c:dPt (Data Points) for (int i = 1; i < seriesFormatSequence.SsSequence.Count; i++) { // write a dPt for each SsSequence SsSequence ssSequence = seriesFormatSequence.SsSequence[i]; ssSequence.Convert(new DataPointMapping(this.WorkbookContext, this.ChartContext, i - 1)); } // c:dLbls (Data Labels) this.ChartFormatsSequence.Convert(new DataLabelMapping(this.WorkbookContext, this.ChartContext, seriesFormatSequence)); // c:trendline // c:errBars // c:cat (Category Axis Data) seriesFormatSequence.Convert(new CatMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElCat)); // c:val seriesFormatSequence.Convert(new ValMapping(this.WorkbookContext, this.ChartContext, Dml.Chart.ElVal)); // c:shape (we only condider the first Chart3DBarShape found) SsSequence ssSeq = seriesFormatSequence.SsSequence.Find(s => s.Chart3DBarShape != null); if (ssSeq != null) { insertShape(ssSeq.Chart3DBarShape); } _writer.WriteEndElement(); // c:ser } } // Data Labels if (this._is3DChart) { // c:gapWidth writeValueElement(Dml.Chart.ElGapWidth, crtSequence.Chart3d.pcGap.ToString()); // c:gapDepth writeValueElement(Dml.Chart.ElGapDepth, crtSequence.Chart3d.pcDepth.ToString()); // c:shape if (crtSequence.SsSequence != null && crtSequence.SsSequence.Chart3DBarShape != null) { insertShape(crtSequence.SsSequence.Chart3DBarShape); } } else { // c:gapWidth writeValueElement(Dml.Chart.ElGapWidth, bar.pcGap.ToString()); // c:overlap writeValueElement(Dml.Chart.ElOverlap, (-bar.pcOverlap).ToString()); // Series Lines } // Axis Ids foreach (int axisId in crtSequence.ChartFormat.AxisIds) { writeValueElement(Dml.Chart.ElAxId, axisId.ToString()); } } _writer.WriteEndElement(); }