public PPT.Series GetChartSeriesByName(PPT.Chart chart, string seriesName) { var sc = (PPT.SeriesCollection)chart.SeriesCollection(); PPT.Series seriesToReturn = null; int counter = 1; int total = sc.Count + 1; do { var series = sc.Item((counter)); if (series.Name == seriesName) { seriesToReturn = series; } counter++; } while (counter != total); return seriesToReturn; }
public PPT.SeriesCollection GetAllChartSeries(PPT.Chart chart) { return (PPT.SeriesCollection)chart.SeriesCollection(); }
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(); }