private static void DecorateSlideThree(PPT.Slide slide) { var columnsList = new string[] { "C#", "VB.Net", "Perl", "Python", "Java" }; var series1 = new ChartSeries() { name = "Blog Statistics", seriesData = new string[] { "8200", "3900", "890", "300", "3278" }, seriesType = XlChartType.xl3DColumn }; var chartData = new List<ChartSeries>() { series1 }; var chart = PptChartManager.CreateChart(XlChartType.xlColumnStacked, slide, columnsList, chartData); var chartTitle = new ChartTitle() { bold = true, italic = false, fontSize = 40, titleText = "Users by Software Language", underline = false }; PptChartManager.AddChartTitle(chart, chartTitle); SetSlideFooter(slide, 3); }
public void AddSeriesToExistingChart(PPT.Chart chart, ChartSeries series) { var workbook = (EXCEL.Workbook)chart.ChartData.Workbook; workbook.Windows.Application.Visible = false; var cellNumber = 1; var dataSheet = (EXCEL.Worksheet)workbook.Worksheets[1]; var sc = (PPT.SeriesCollection)chart.SeriesCollection(); var seriesCount = sc.Count; var letter = IntToLetters((seriesCount + 2)); foreach (var value in series.seriesData) { var cellPosition = letter + cellNumber.ToString(); dataSheet.Cells.Range[cellPosition].Value2 = value; cellNumber++; chart.Refresh(); } // we have to populate the sheet with new values, now we need to create a series for it! var columnsRange = dataSheet.UsedRange.Columns; var rowsRange = dataSheet.UsedRange.Rows; var columnCount = columnsRange.Columns.Count; var rowCount = rowsRange.Rows.Count; var lastColumnLetter = IntToLetters(columnCount); var newSeries = sc.NewSeries(); newSeries.Name = series.name; newSeries.XValues = "'Sheet1'!$A$1:$A$" + rowCount; newSeries.Values = "'Sheet1'!$" + lastColumnLetter + "$1:$" + lastColumnLetter + "$" + rowCount; newSeries.ChartType = series.seriesType; chart.Refresh(); }