Introdução
Quando se trata de apresentação do PowerPoint, os gráficos são bastante importantes, não é mesmo? Gráficos podem visualizar uma grande quantidade de dados complexos, o que é útil para comparação e análise de dados. Este artigo enfoca a forma de criar os tipos de gráficos mais utilizados (incluindo gráfico de colunas, gráfico de torta e gráfico de combinação) usando . NET Presentation Library em suas aplicações C #.
Antes de começar, você precisa baixar a biblioteca do link fornecido ou adicionar via nuget, adicionar os arquivos DLL como referências em seu projeto e importar os seguintes espaços de nome necessários no início.
using System; using Spire.Presentation; using System.Drawing; using Spire.Presentation.Charts; using System.Data; using Spire.Presentation.Drawing;
Como criar um gráfico de colunas
Um gráfico de colunas exibe uma série como um conjunto de barras verticais que são agrupadas por categoria, o seguinte gráfico ficaria desta forma:
Veja o código fonte do mesmo:
//create a PowerPoint document Presentation presentation = new Presentation(); //insert a column chart RectangleF rect = new RectangleF(40, 100, 550, 320); IChart chart = presentation.Slides[0].Shapes.AppendChart(ChartType.ColumnClustered, rect); //set title chart.ChartTitle.TextProperties.Text = "Male/Female Ratio Per Dept."; chart.ChartTitle.TextProperties.IsCentered = true; chart.ChartTitle.Height = 30; chart.HasTitle = true; //define a multi-dimensional array of strings string[,] data = new string[,] { {"Department","Male","Female" }, {"Development","25","15"}, {"Testing","5","10" }, {"Sales","7","3" }, {"Support","20","5" } }; //write data to chart data for (int i = 0; i < data.GetLength(0); i++) { for (int j = 0; j < data.GetLength(1); j++) { int number; bool result = Int32.TryParse(data[i, j], out number); if (result) { chart.ChartData[i, j].Value = number; } else { chart.ChartData[i, j].Value = data[i, j]; } } } //set series labels chart.Series.SeriesLabel = chart.ChartData["B1", "C1"]; //set category labels chart.Categories.CategoryLabels = chart.ChartData["A2", "A5"]; //set the series values chart.Series[0].Values = chart.ChartData["B2", "B5"]; chart.Series[1].Values = chart.ChartData["C2", "C5"]; //apply built-in chart style chart.ChartStyle = ChartStyle.Style11; //set overlap chart.OverLap = -50; //set gap width chart.GapWidth = 200; //save to file presentation.SaveToFile("ColumnChart.pptx", FileFormat.Pptx2010);
Como criar um gráfico de pizza
Um gráfico de torta ajuda a mostrar as proporções e porcentagens entre as categorias, dividindo um círculo em segmentos proporcionais, veja a imagem gerada:
Veja o código fonte:
//create a PowerPoint document Presentation ppt = new Presentation(); //insert a pie chart RectangleF rect1 = new RectangleF(40, 100, 550, 320); IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.Pie, rect1, false); //set title chart.ChartTitle.TextProperties.Text = "Sales by Quarter"; chart.ChartTitle.TextProperties.IsCentered = true; chart.ChartTitle.Height = 30; chart.HasTitle = true; //define sample data and assign the data to chart data string[] quarters = new string[] { "1st Qtr", "2nd Qtr", "3rd Qtr", "4th Qtr" }; int[] sales = new int[] { 210, 320, 180, 500 }; chart.ChartData[0, 0].Text = "Quarters"; chart.ChartData[0, 1].Text = "Sales"; for (int i = 0; i < quarters.Length; ++i) { chart.ChartData[i + 1, 0].Value = quarters[i]; chart.ChartData[i + 1, 1].Value = sales[i]; } //set series label chart.Series.SeriesLabel = chart.ChartData["B1", "B1"]; //set category labels chart.Categories.CategoryLabels = chart.ChartData["A2", "A5"]; //set series values chart.Series[0].Values = chart.ChartData["B2", "B5"]; //ddd data points to series and fill each data point with different color for (int i = 0; i < chart.Series[0].Values.Count; i++) { ChartDataPoint cdp = new ChartDataPoint(chart.Series[0]); cdp.Index = i; chart.Series[0].DataPoints.Add(cdp); } chart.Series[0].DataPoints[0].Fill.FillType = FillFormatType.Solid; chart.Series[0].DataPoints[0].Fill.SolidColor.Color = Color.LightBlue; chart.Series[0].DataPoints[1].Fill.FillType = FillFormatType.Solid; chart.Series[0].DataPoints[1].Fill.SolidColor.Color = Color.DarkGray; chart.Series[0].DataPoints[2].Fill.FillType = FillFormatType.Solid; chart.Series[0].DataPoints[2].Fill.SolidColor.Color = Color.MediumPurple; chart.Series[0].DataPoints[3].Fill.FillType = FillFormatType.Solid; chart.Series[0].DataPoints[3].Fill.SolidColor.Color = Color.DarkOrange; //set labels to display label value and percentage value. chart.Series[0].DataLabels.LabelValueVisible = true; chart.Series[0].DataLabels.PercentValueVisible = true; //save to file ppt.SaveToFile("PieChart.pptx", FileFormat.Pptx2010);
Como criar um gráfico de combinação
Um gráfico de combinação é um gráfico que combina dois ou mais tipos de gráfico em um único gráfico, neste caso barra e linha:
Veja o código fonte do gráfico:
//create a PowerPoint document Presentation presentation = new Presentation(); //insert a column chart RectangleF rect = new RectangleF(40, 100, 550, 320); IChart chart = presentation.Slides[0].Shapes.AppendChart(ChartType.ColumnClustered, rect); //set chart title chart.ChartTitle.TextProperties.Text = "Monthly Sales Report"; chart.ChartTitle.TextProperties.IsCentered = true; chart.ChartTitle.Height = 30; chart.HasTitle = true; //create a datatable DataTable dataTable = new DataTable(); dataTable.Columns.Add(new DataColumn("Month", Type.GetType("System.String"))); dataTable.Columns.Add(new DataColumn("Sales", Type.GetType("System.Int32"))); dataTable.Columns.Add(new DataColumn("Growth rate", Type.GetType("System.Decimal"))); dataTable.Rows.Add("January", 200, 0.6); dataTable.Rows.Add("February", 250, 0.8); dataTable.Rows.Add("March", 300, 0.6); dataTable.Rows.Add("April", 150, 0.2); dataTable.Rows.Add("May", 200, 0.5); dataTable.Rows.Add("June", 400, 0.9); //import data from datatable to chart data for (int c = 0; c < dataTable.Columns.Count; c++) { chart.ChartData[0, c].Text = dataTable.Columns[c].Caption; } for (int r = 0; r < dataTable.Rows.Count; r++) { object[] datas = dataTable.Rows[r].ItemArray; for (int c = 0; c < datas.Length; c++) { chart.ChartData[r + 1, c].Value = datas[c]; } } //set series labels chart.Series.SeriesLabel = chart.ChartData["B1", "C1"]; //set categories labels chart.Categories.CategoryLabels = chart.ChartData["A2", "A7"]; //assign data to series values chart.Series[0].Values = chart.ChartData["B2", "B7"]; chart.Series[1].Values = chart.ChartData["C2", "C7"]; //change the chart type of series 2 to line chart with markers chart.Series[1].Type = ChartType.LineMarkers; //plot data of series 2 on the secondary axis chart.Series[1].UseSecondAxis = true; //set the number format as percentage chart.SecondaryValueAxis.NumberFormat = "0%"; //hide grid lines of secondary axis chart.SecondaryValueAxis.MajorGridTextLines.FillType = FillFormatType.None; //set overlap chart.OverLap = -50; //set gap width chart.GapWidth = 200; //save to file presentation.SaveToFile("CombinationChart.pptx", FileFormat.Pptx2010);
Espero que tenham gostado do tutorial de hoje! Um grande abraço 🙂