Hi ,
I am using PPT Template for generating PPT , In PPT template i have doughnut chart but i am geting as pie chart. my code is like this,
public void UpdateTemplateDoughnutChart(ISlide _slide, DataTable dt, string chartname, string currentColumn, string catName, Color col1, Color col2)
{
foreach (IShape _shp in _slide.Shapes)
{
if (_shp.GetType().Name == "Chart" && _shp.Name == chartname)
{
Aspose.Slides.Charts.IChart chart = (Aspose.Slides.Charts.IChart)_shp;
//Setting the index of chart data sheet
int defaultWorksheetIndex = 0;
//Getting the chart data worksheet
Aspose.Slides.Charts.IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;
//Delete default generated series and categories
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
chart.ChartData.ChartDataWorkbook.Clear(defaultWorksheetIndex);
//Adding new categories
for (int i = 0; i < dt.Rows.Count; i++)
{
chart.ChartData.Categories.Add(fact.GetCell(0, i + 1, 0, dt.Rows[i][0].ToString()));
}
//Adding new series
Aspose.Slides.Charts.IChartSeries series = chart.ChartData.Series.Add(fact.GetCell(0, 0, 1, "ser1"), chart.Type);
//Now populating series data
Aspose.Slides.Charts.IDataLabel lbl1;
for (int i = 0; i < dt.Rows.Count; i++)
{
series.DataPoints.AddDataPointForDoughnutSeries(fact.GetCell(defaultWorksheetIndex, i + 1, 1, Get_DoubleValue(dt.Rows[i][1].ToString())));
//series.DataPoints.AddDataPointForDoughnutSeries(Get_DoubleValue(dt.Rows[i][1].ToString()));
lbl1 = series.DataPoints[i].Label;
lbl1.DataLabelFormat.ShowValue = false;
lbl1.DataLabelFormat.ShowLegendKey = false;
lbl1.DataLabelFormat.ShowPercentage = false;
}
chart.ChartData.SeriesGroups[0].IsColorVaried = true;
Aspose.Slides.Charts.IChartDataPoint point = series.DataPoints[0];
point.Format.Fill.FillType = FillType.Solid;
point.Format.Fill.SolidFillColor.Color = col1;
//Setting Sector border
point.Format.Line.FillFormat.FillType = FillType.Solid;
point.Format.Line.FillFormat.SolidFillColor.Color = Color.Gray;
point.Format.Line.Width = 1.0;
point.Format.Line.Style = LineStyle.ThinThick;
point.Format.Line.DashStyle = LineDashStyle.Solid;
Aspose.Slides.Charts.IChartDataPoint point1 = series.DataPoints[1];
point1.Format.Fill.FillType = FillType.Solid;
point1.Format.Fill.SolidFillColor.Color = col2;
//Setting Sector border
point1.Format.Line.FillFormat.FillType = FillType.Solid;
point1.Format.Line.FillFormat.SolidFillColor.Color = Color.Gray;
point1.Format.Line.Width = 1.0;
point1.Format.Line.Style = LineStyle.Single;
point1.Format.Line.DashStyle = LineDashStyle.Solid;
//Showing Leader Lines for Chart
series.Labels.DefaultDataLabelFormat.ShowLeaderLines = false;
//Setting Rotation Angle for Pie Chart Sectors
chart.ChartData.SeriesGroups[0].FirstSliceAngle = 180;
chart.HasLegend = false;
series.ParentSeriesGroup.Overlap = 10;
}
}
}