creare grafici in PowerPoint ppt C#

I grafici vengono utilizzati per riassumere e rappresentare visivamente i dati all’interno delle presentazioni PowerPoint. Pertanto, PowerPoint fornisce un’ampia gamma di tipi di grafici per visualizzare i dati. Tra tutti, i tipi di grafici più comunemente usati includono grafici a torta, grafici a linee, grafici a barre, istogrammi, grafici azionari e così via. In questo articolo imparerai come creare questi grafici nelle presentazioni PowerPoint usando C#.

API C# per creare grafici in PowerPoint

Aspose.Slides for .NET è una libreria di classi C# che consente di creare e manipolare presentazioni PowerPoint dall’interno di applicazioni .NET. Inoltre, l’API ti consente di creare e aggiungere grafici alle presentazioni senza problemi. Aspose.Slides per .NET può essere scaricato come DLL o installato tramite NuGet.

PM> Install-Package Aspose.Slides

Crea un istogramma in PowerPoint PPT usando C#

In questa sezione imparerai come creare un istogramma e aggiungere categorie e serie per popolare quel grafico. Di seguito sono riportati i passaggi per eseguire questa operazione.

A scopo dimostrativo, nell’esempio di codice seguente viene illustrato come creare un istogramma nella presentazione di PowerPoint usando C#.

// Istanziare la classe Presentation che rappresenta il file PPTX
Presentation pres = new Presentation();

// Accedi alla prima diapositiva
ISlide sld = pres.Slides[0];

// Aggiungi grafico con dati predefiniti
IChart chart = sld.Shapes.AddChart(ChartType.ClusteredColumn, 0, 0, 500, 500);

// Titolo della tabella delle impostazioni
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;

// Imposta la prima serie su Mostra valori
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;

// Impostazione dell'indice del foglio dati grafico
int defaultWorksheetIndex = 0;

// Ottenere il foglio di lavoro dei dati del grafico
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Elimina serie e categorie generate di default
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
int s = chart.ChartData.Series.Count;
s = chart.ChartData.Categories.Count;

// Aggiunta di nuove serie
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.Type);

// Aggiunta di nuove categorie
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"));

// Prendi la prima serie di grafici
IChartSeries series = chart.ChartData.Series[0];

// Ora popolando i dati della serie
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));

// Impostazione del colore di riempimento per le serie
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = System.Drawing.Color.Blue;


// Prendi la seconda serie di grafici
series = chart.ChartData.Series[1];

// Ora popolando i dati della serie
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 2, 30));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 2, 10));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 2, 60));

// Impostazione del colore di riempimento per le serie
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Orange;

// La prima etichetta mostrerà il nome della categoria
IDataLabel lbl = series.DataPoints[0].Label;
lbl.DataLabelFormat.ShowCategoryName = true;

lbl = series.DataPoints[1].Label;
lbl.DataLabelFormat.ShowSeriesName = true;

// Mostra il valore per la terza etichetta
lbl = series.DataPoints[2].Label;
lbl.DataLabelFormat.ShowValue = true;
lbl.DataLabelFormat.ShowSeriesName = true;
lbl.DataLabelFormat.Separator = "/";

// Salva la presentazione con il grafico
pres.Save("column-chart.pptx", SaveFormat.Pptx);

Quello che segue è lo screenshot del grafico a colonne risultante.

crea un istogramma in PowerPoint in C#

Crea grafico a dispersione in PowerPoint PPT usando C#

Di seguito sono riportati i passaggi per creare un grafico a dispersione nella presentazione di PowerPoint usando C#.

  • Crea una nuova presentazione usando la classe Presentazione.
  • Ottieni il riferimento delle diapositive nell’oggetto ISlide.
  • Aggiungi un tipo di grafico ScatterWithSmoothLines con dati predefiniti e ottieni il suo riferimento nell’oggetto IChart.
  • Accedere alla cartella di lavoro dei dati del grafico nell’oggetto IChartDataWorkbook e cancellare la serie predefinita.
  • Aggiungi nuove serie ai dati del grafico.
  • Accedi a ciascuna serie nell’oggetto IChartSeries e aggiungi punti dati alla serie.
  • Impostare l’indicatore per la serie utilizzando la proprietà IChartSeries.Marker.
  • Salva la presentazione usando il metodo Presentation.Save(String, SaveFormat).

Nell’esempio di codice seguente viene illustrato come creare un grafico a dispersione nelle presentazioni di PowerPoint usando C#.

// Istanziare la classe Presentation che rappresenta il file PPTX
Presentation pres = new Presentation();

// Accedi alla prima diapositiva
ISlide sld = pres.Slides[0];

// Aggiungi grafico con dati predefiniti
IChart chart = sld.Shapes.AddChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);

// Ottenere l'indice del foglio di lavoro dei dati del grafico predefinito
int defaultWorksheetIndex = 0;

// Ottenere il foglio di lavoro dei dati del grafico
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Elimina serie demo
chart.ChartData.Series.Clear();

// Aggiungi una nuova serie
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 3, "Series 2"), chart.Type);

// Prendi la prima serie di grafici
IChartSeries series = chart.ChartData.Series[0];

// Aggiungi un nuovo punto (1:3) lì.
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 1), fact.GetCell(defaultWorksheetIndex, 2, 2, 3));

// Aggiungi nuovo punto (2:10)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 2), fact.GetCell(defaultWorksheetIndex, 3, 2, 10));

// Modifica il tipo di serie
series.Type = ChartType.ScatterWithStraightLinesAndMarkers;

// Modifica dell'indicatore della serie di grafici
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyleType.Star;

// Prendi la seconda serie di grafici
series = chart.ChartData.Series[1];

// Aggiungi un nuovo punto (5:2) lì.
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 3, 5), fact.GetCell(defaultWorksheetIndex, 2, 4, 2));

// Aggiungi nuovo punto (3:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 3, 3), fact.GetCell(defaultWorksheetIndex, 3, 4, 1));

// Aggiungi nuovo punto (2:2)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 4, 3, 2), fact.GetCell(defaultWorksheetIndex, 4, 4, 2));

// Aggiungi nuovo punto (5:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 5, 3, 5), fact.GetCell(defaultWorksheetIndex, 5, 4, 1));

// Modifica dell'indicatore della serie di grafici
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyleType.Circle;

// Salva la presentazione con il grafico
pres.Save("scattered-chart.pptx", SaveFormat.Pptx);

Lo screenshot seguente mostra il grafico a dispersione risultante.

crea un grafico sparso in PowerPoint in C#

Crea un grafico a torta in PowerPoint PPT usando C#

Di seguito sono riportati i passaggi per creare un grafico a torta in una presentazione di PowerPoint usando C#.

Nell’esempio di codice seguente viene illustrato come creare un grafico a torta in una presentazione di PowerPoint usando C#.

// Istanziare la classe Presentation che rappresenta il file PPTX
Presentation presentation = new Presentation();

// Accedi alla prima diapositiva
ISlide slides = presentation.Slides[0];

// Aggiungi grafico con dati predefiniti
IChart chart = slides.Shapes.AddChart(ChartType.Pie, 100, 100, 400, 400);

// Titolo della tabella delle impostazioni
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;

// Imposta la prima serie su Mostra valori
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;

// Impostazione dell'indice del foglio dati grafico
int defaultWorksheetIndex = 0;

// Ottenere il foglio di lavoro dei dati del grafico
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Elimina serie e categorie generate predefinite
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();

// Aggiunta di nuove categorie
chart.ChartData.Categories.Add(fact.GetCell(0, 1, 0, "First Qtr"));
chart.ChartData.Categories.Add(fact.GetCell(0, 2, 0, "2nd Qtr"));
chart.ChartData.Categories.Add(fact.GetCell(0, 3, 0, "3rd Qtr"));

// Aggiunta di nuove serie
IChartSeries series = chart.ChartData.Series.Add(fact.GetCell(0, 0, 1, "Series 1"), chart.Type);

// Ora popolando i dati della serie
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));

// Non funziona nella nuova versione
// Aggiunta di nuovi punti e impostazione del colore del settore
// series.IsColorVaried = true;
chart.ChartData.SeriesGroups[0].IsColorVaried = true;

IChartDataPoint point = series.DataPoints[0];
point.Format.Fill.FillType = FillType.Solid;
point.Format.Fill.SolidFillColor.Color = Color.Orange;
// Impostazione del confine del settore
point.Format.Line.FillFormat.FillType = FillType.Solid;
point.Format.Line.FillFormat.SolidFillColor.Color = Color.Gray;
point.Format.Line.Width = 3.0;
//point.Format.Line.Style = LineStyle.ThinThick;
//point.Format.Line.DashStyle = LineDashStyle.DashDot;

IChartDataPoint point1 = series.DataPoints[1];
point1.Format.Fill.FillType = FillType.Solid;
point1.Format.Fill.SolidFillColor.Color = Color.BlueViolet;

// Impostazione del confine del settore
point1.Format.Line.FillFormat.FillType = FillType.Solid;
point1.Format.Line.FillFormat.SolidFillColor.Color = Color.Blue;
point1.Format.Line.Width = 3.0;
//point1.Format.Line.Style = LineStyle.Single;
//point1.Format.Line.DashStyle = LineDashStyle.LargeDashDot;

IChartDataPoint point2 = series.DataPoints[2];
point2.Format.Fill.FillType = FillType.Solid;
point2.Format.Fill.SolidFillColor.Color = Color.YellowGreen;

// Impostazione del confine del settore
point2.Format.Line.FillFormat.FillType = FillType.Solid;
point2.Format.Line.FillFormat.SolidFillColor.Color = Color.Red;
point2.Format.Line.Width = 2.0;
//point2.Format.Line.Style = LineStyle.ThinThin;
//point2.Format.Line.DashStyle = LineDashStyle.LargeDashDotDot;

// Crea etichette personalizzate per ciascuna delle categorie per le nuove serie
IDataLabel lbl1 = series.DataPoints[0].Label;

// lbl.ShowCategoryName = vero;
lbl1.DataLabelFormat.ShowValue = true;

IDataLabel lbl2 = series.DataPoints[1].Label;
lbl2.DataLabelFormat.ShowValue = true;
lbl2.DataLabelFormat.ShowLegendKey = true;
lbl2.DataLabelFormat.ShowPercentage = true;

IDataLabel lbl3 = series.DataPoints[2].Label;
lbl3.DataLabelFormat.ShowSeriesName = true;
lbl3.DataLabelFormat.ShowPercentage = true;

// Visualizzazione delle linee guida per il grafico
//series.Labels.DefaultDataLabelFormat.ShowLeaderLines = true;

// Impostazione dell'angolo di rotazione per i settori dei grafici a torta
chart.ChartData.SeriesGroups[0].FirstSliceAngle = 180;

// Salva la presentazione con il grafico
presentation.Save("pie-chart.pptx", SaveFormat.Pptx);

Quello che segue è lo screenshot del grafico a torta generato.

crea un grafico a torta in PowerPoint in C#

Aggiungi il grafico dell’istogramma in PowerPoint PPTX usando C#

Di seguito sono riportati i passaggi per creare un grafico a istogramma nelle presentazioni di PowerPoint usando Aspose.Slides per .NET.

  • Crea un’istanza della classe Presentazione.
  • Ottieni il riferimento di una diapositiva nell’oggetto ISlide in base al suo indice.
  • Aggiungi un grafico a istogramma con dati predefiniti.
  • Cancella le serie e le categorie predefinite.
  • Accedere alla cartella di lavoro dei dati del grafico nell’oggetto IChartDataWorkbook.
  • Aggiungi una nuova serie e ottieni il suo riferimento nell’oggetto IChartSeries.
  • Aggiungi punti dati alla serie.
  • Imposta il tipo di aggregazione dell’asse del grafico.
  • Salva la presentazione usando il metodo Presentation.Save(String, SaveFormat).

Nell’esempio di codice seguente viene illustrato come creare un grafico a istogramma usando C#.

// Carica o crea una presentazione
using (Presentation pres = new Presentation())
{
    // Aggiungi il grafico dell'istogramma
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Histogram, 50, 50, 500, 400);
    chart.ChartData.Categories.Clear();
    chart.ChartData.Series.Clear();

    // Accedi alla cartella di lavoro dei dati del grafico
    IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;

    // Cancella cartella di lavoro
    wb.Clear(0);

    // Aggiungi serie di grafici
    IChartSeries series = chart.ChartData.Series.Add(ChartType.Histogram);
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A1", 15));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A2", -41));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A3", 16));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A4", 10));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A5", -23));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A6", 16));

    chart.Axes.HorizontalAxis.AggregationType = AxisAggregationType.Automatic;

    // Salva presentazione
    pres.Save("histogram-chart.pptx", SaveFormat.Pptx);
}

Quello che segue è lo screenshot del grafico dell’istogramma creato.

crea il grafico dell'istogramma in PowerPoint in C#

Crea un grafico azionario in PowerPoint usando C#

Il grafico azionario è anche uno dei tipi di grafici comunemente usati nelle presentazioni PowerPoint. Di seguito sono riportati i passaggi per creare un grafico azionario.

  • Crea una nuova presentazione PowerPoint utilizzando la classe Presentazione.
  • Ottieni il riferimento della diapositiva in un oggetto ISlide usando l’indice della diapositiva.
  • Aggiungi il grafico OpenHighLowClose alla diapositiva e ottieni il suo riferimento nell’oggetto IChart.
  • Cancella le serie e le categorie predefinite.
  • Accedi ai dati del grafico nell’oggetto IChartDataWorkbook.
  • Aggiungi nuove serie e categorie al grafico.
  • Accedi a ciascuna serie di grafici e aggiungi punti dati.
  • Specificare il formato HiLowLines.
  • Salva la presentazione usando il metodo Presentation.Save(String, SaveFormat).

Nell’esempio di codice seguente viene illustrato come aggiungere un grafico azionario alla presentazione di PowerPoint usando C#.

// Carica o crea una presentazione
using (Presentation pres = new Presentation())
{
    // Aggiungi grafico
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.OpenHighLowClose, 50, 50, 600, 400, false);

    // Cancella categorie e serie
    chart.ChartData.Series.Clear();
    chart.ChartData.Categories.Clear();

    // Accedi alla cartella di lavoro dei dati del grafico
    IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;

    // Aggiungi categorie
    chart.ChartData.Categories.Add(wb.GetCell(0, 1, 0, "A"));
    chart.ChartData.Categories.Add(wb.GetCell(0, 2, 0, "B"));
    chart.ChartData.Categories.Add(wb.GetCell(0, 3, 0, "C"));

    // Aggiungi serie
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 1, "Open"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 2, "High"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 3, "Low"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 4, "Close"), chart.Type);

    // Aggiungi punti dati
    IChartSeries series = chart.ChartData.Series[0];

    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 1, 72));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 1, 25));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 1, 38));

    series = chart.ChartData.Series[1];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 2, 172));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 2, 57));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 2, 57));

    series = chart.ChartData.Series[2];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 3, 12));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 3, 12));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 3, 13));

    series = chart.ChartData.Series[3];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 4, 25));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 4, 38));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 4, 50));

    // Imposta se il grafico ha barre su/giù
    chart.ChartData.SeriesGroups[0].UpDownBars.HasUpDownBars = true;

    // Specificare il formato della linea alta/bassa
    chart.ChartData.SeriesGroups[0].HiLowLinesFormat.Line.FillFormat.FillType = FillType.Solid;

    foreach (IChartSeries ser in chart.ChartData.Series)
    {
        ser.Format.Line.FillFormat.FillType = FillType.NoFill;
    }

    // Salva presentazione
    pres.Save("stock-chart.pptx", SaveFormat.Pptx);
}

Quello che segue è lo screenshot del grafico azionario creato.

crea un grafico azionario in PowerPoint in C#

Altri tipi di grafici

Oltre ai grafici sopra menzionati, ci sono anche altri tipi di grafici che puoi aggiungere alle presentazioni PowerPoint. Per saperne di più sui tipi di grafici supportati, puoi visitare questo articolo della documentazione.

Ottieni una licenza API gratuita

Puoi ottenere una licenza temporanea gratuita per provare l’API senza limitazioni di valutazione.

Conclusione

In questo articolo hai imparato come creare grafici nelle presentazioni di PowerPoint usando C#. Inoltre, la guida dettagliata e gli esempi di codice hanno mostrato come aggiungere istogrammi, grafici a dispersione, grafici a torta, istogrammi e grafici azionari. Puoi esplorare di più su Aspose.Slides per .NET usando documentazione.

Guarda anche