Crea grafici nelle presentazioni PowerPoint

I grafici sono uno strumento eccellente per mostrare in modo conciso i dati. Inoltre, semplificano il consumo di grandi quantità di dati rappresentandoli visivamente. L’aggiunta di grafici alle presentazioni può rivelarsi utile quando si presentano dati come le tendenze di crescita dell’azienda o il tasso di adozione dei prodotti. A tal fine, questo articolo ti insegnerà come creare grafici nelle presentazioni PowerPoint utilizzando C++.

API C++ per la creazione di grafici nelle presentazioni di PowerPoint

Aspose.Slides for C++ è una libreria C++ nativa che supporta la creazione, la lettura e la manipolazione di file PowerPoint. L’API supporta anche la creazione di grafici nelle presentazioni PowerPoint. Puoi installare l’API tramite NuGet o scaricarla direttamente dalla sezione Download.

PM> Install-Package Aspose.Slides.Cpp

Crea un istogramma nelle presentazioni di PowerPoint usando C++

Di seguito sono riportati i passaggi per creare un istogramma nelle presentazioni di PowerPoint.

Di seguito è riportato il codice di esempio per aggiungere un istogramma nella presentazione di PowerPoint utilizzando C++.

// Percorso del file di output.
const String outputFilePath = u"OutputDirectory\\column_chart.pptx";

// Istanziare la classe Presentation che rappresenta il file PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Accedi alla prima diapositiva
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Aggiungi grafico con dati predefiniti
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);

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

// Ottenere la cartella di lavoro dei dati del grafico
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// Titolo della tabella delle impostazioni
chart->get_ChartTitle()->AddTextFrameForOverriding(u"Sample Title");
chart->get_ChartTitle()->get_TextFrameForOverriding()->get_TextFrameFormat()->set_CenterText(NullableBool::True);
chart->get_ChartTitle()->set_Height(20);
chart->set_HasTitle(true);

// Elimina serie e categorie generate predefinite
chart->get_ChartData()->get_Series()->Clear();
chart->get_ChartData()->get_Categories()->Clear();
int s = chart->get_ChartData()->get_Series()->get_Count();
s = chart->get_ChartData()->get_Categories()->get_Count();

// Aggiungi serie
chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 0, 1, ObjectExt::Box<System::String>(u"Series 1")), chart->get_Type());
chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 0, 2, ObjectExt::Box<System::String>(u"Series 2")), chart->get_Type());

// Aggiungi categorie
chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 1, 0, ObjectExt::Box<System::String>(u"Category 1")));
chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 2, 0, ObjectExt::Box<System::String>(u"Category 2")));
chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 3, 0, ObjectExt::Box<System::String>(u"Category 3")));

// Prendi la prima serie di grafici
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// Popolare i dati della serie
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 1, 1, ObjectExt::Box<double>(20)));
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 2, 1, ObjectExt::Box<double>(50)));
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 3, 1, ObjectExt::Box<double>(30)));

// Impostazione del colore di riempimento per le serie
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Blue());

// Prendi la seconda serie di grafici
series = chart->get_ChartData()->get_Series()->idx_get(1);

// Popolare i dati della serie
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 1, 2, ObjectExt::Box<double>(30)));
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 2, 2, ObjectExt::Box<double>(10)));
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 3, 2, ObjectExt::Box<double>(60)));

// Impostazione del colore di riempimento per le serie
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Orange());

// La prima etichetta mostrerà il nome della categoria
SharedPtr<IDataLabel> lbl = series->get_DataPoints()->idx_get(0)->get_Label();
lbl->get_DataLabelFormat()->set_ShowCategoryName(true);

lbl = series->get_DataPoints()->idx_get(1)->get_Label();
lbl->get_DataLabelFormat()->set_ShowSeriesName(true);

// Mostra il valore per la terza etichetta
lbl = series->get_DataPoints()->idx_get(2)->get_Label();
lbl->get_DataLabelFormat()->set_ShowValue(true);
lbl->get_DataLabelFormat()->set_ShowSeriesName(true);
lbl->get_DataLabelFormat()->set_Separator(u"/");

// Salva il file PPTX
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Quella che segue è l’immagine dell’istogramma generato dal codice di esempio.

Crea un istogramma nelle presentazioni di PowerPoint

Creazione di grafici a torta in presentazioni PowerPoint utilizzando C++

Di seguito sono riportati i passaggi per aggiungere un grafico a torta alle diapositive di PowerPoint.

Di seguito è riportato il codice di esempio per l’aggiunta di un grafico a torta nelle diapositive di PowerPoint utilizzando C++.

// Percorso del file di output.
const String outputFilePath = u"OutputDirectory\\pie_chart.pptx";

// Istanziare la classe Presentation che rappresenta il file PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Accedi alla prima diapositiva
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Aggiungi grafico con dati predefiniti
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::Pie, 0, 0, 500, 500);

// Titolo della tabella delle impostazioni
chart->get_ChartTitle()->AddTextFrameForOverriding(u"Sample Title");
chart->get_ChartTitle()->get_TextFrameForOverriding()->get_TextFrameFormat()->set_CenterText(NullableBool::True);
chart->get_ChartTitle()->set_Height(20);
chart->set_HasTitle(true);

// Elimina serie e categorie generate predefinite
chart->get_ChartData()->get_Series()->Clear();
chart->get_ChartData()->get_Categories()->Clear();

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

// Ottenere la cartella di lavoro dei dati del grafico
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// Aggiungi categorie
chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 1, 0, ObjectExt::Box<System::String>(u"First Qtr")));
chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 2, 0, ObjectExt::Box<System::String>(u"2nd Qtr")));
chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 3, 0, ObjectExt::Box<System::String>(u"3rd Qtr")));

// Aggiungi serie
chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 0, 1, ObjectExt::Box<System::String>(u"Series 1")), chart->get_Type());

// Prendi la prima serie di grafici
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// Popolare i dati della serie
series->get_DataPoints()->AddDataPointForPieSeries(fact->GetCell(defaultWorksheetIndex, 1, 1, ObjectExt::Box<double>(20)));
series->get_DataPoints()->AddDataPointForPieSeries(fact->GetCell(defaultWorksheetIndex, 2, 1, ObjectExt::Box<double>(50)));
series->get_DataPoints()->AddDataPointForPieSeries(fact->GetCell(defaultWorksheetIndex, 3, 1, ObjectExt::Box<double>(30)));

chart->get_ChartData()->get_SeriesGroups()->idx_get(0)->set_IsColorVaried(true);

SharedPtr<IChartDataPoint> point = series->get_DataPoints()->idx_get(0);
point->get_Format()->get_Fill()->set_FillType(FillType::Solid);
point->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Orange());

// Impostazione del confine del settore
point->get_Format()->get_Line()->get_FillFormat()->set_FillType(FillType::Solid);
point->get_Format()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Gray());
point->get_Format()->get_Line()->set_Width(3.0);

SharedPtr<IChartDataPoint> point1 = series->get_DataPoints()->idx_get(1);
point1->get_Format()->get_Fill()->set_FillType(FillType::Solid);
point1->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_BlueViolet());

// Impostazione del confine del settore
point1->get_Format()->get_Line()->get_FillFormat()->set_FillType(FillType::Solid);
point1->get_Format()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Blue());
point1->get_Format()->get_Line()->set_Width(3.0);

SharedPtr<IChartDataPoint> point2 = series->get_DataPoints()->idx_get(2);
point2->get_Format()->get_Fill()->set_FillType(FillType::Solid);
point2->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_YellowGreen());

// Impostazione del confine del settore
point2->get_Format()->get_Line()->get_FillFormat()->set_FillType(FillType::Solid);
point2->get_Format()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
point2->get_Format()->get_Line()->set_Width(2.0);

// Crea etichette personalizzate per ogni categoria della serie
SharedPtr<IDataLabel> lbl1 = series->get_DataPoints()->idx_get(0)->get_Label();

// lbl.ShowCategoryName = vero;
lbl1->get_DataLabelFormat()->set_ShowValue(true);

SharedPtr<IDataLabel> lbl2 = series->get_DataPoints()->idx_get(1)->get_Label();
lbl2->get_DataLabelFormat()->set_ShowValue(true);
lbl2->get_DataLabelFormat()->set_ShowLegendKey(true);
lbl2->get_DataLabelFormat()->set_ShowPercentage(true);

SharedPtr<IDataLabel> lbl3 = series->get_DataPoints()->idx_get(2)->get_Label();

lbl3->get_DataLabelFormat()->set_ShowSeriesName(true);
lbl3->get_DataLabelFormat()->set_ShowPercentage(true);

// Visualizzazione delle linee guida per il grafico
series->get_Labels()->get_DefaultDataLabelFormat()->set_ShowLeaderLines(true);

// Impostazione dell'angolo di rotazione per i settori dei grafici a torta
chart->get_ChartData()->get_SeriesGroups()->idx_get(0)->set_FirstSliceAngle(180);

// Salva il file PPTX
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Quella che segue è l’immagine del grafico a torta generato dal codice di esempio.

Crea un grafico a torta nelle presentazioni di PowerPoint

Crea un grafico sparso nella presentazione di PowerPoint usando C++

Di seguito sono riportati i passaggi per aggiungere un grafico sparso alle diapositive di PowerPoint.

Di seguito è riportato il codice di esempio per aggiungere un grafico sparso alle diapositive di PowerPoint utilizzando C++.

// Percorso del file di output.
const String outputFilePath = u"OutputDirectory\\scattered_chart.pptx";

// Istanziare la classe Presentation che rappresenta il file PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Accedi alla prima diapositiva
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Aggiungi grafico con dati predefiniti
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ScatterWithSmoothLines, 0, 0, 500, 500);

// Elimina le serie generate di default 
chart->get_ChartData()->get_Series()->Clear();

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

// Ottenere la cartella di lavoro dei dati del grafico
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// Aggiungi serie
chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 1, 1, ObjectExt::Box<System::String>(u"Series 1")), chart->get_Type());
chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 1, 3, ObjectExt::Box<System::String>(u"Series 2")), chart->get_Type());

// Prendi la prima serie di grafici
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// Aggiungi un nuovo punto (1:3) lì.
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 2, 1, ObjectExt::Box<double>(1)), fact->GetCell(defaultWorksheetIndex, 2, 2, ObjectExt::Box<double>(3)));

// Aggiungi nuovo punto (2:10)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 3, 1, ObjectExt::Box<double>(2)), fact->GetCell(defaultWorksheetIndex, 3, 2, ObjectExt::Box<double>(10)));

// Modifica il tipo di serie
series->set_Type(ChartType::ScatterWithStraightLinesAndMarkers);

// Modifica dell'indicatore della serie di grafici
series->get_Marker()->set_Size(10);
series->get_Marker()->set_Symbol(MarkerStyleType::Star);

// Prendi la seconda serie di grafici
series = chart->get_ChartData()->get_Series()->idx_get(1);

// Aggiungi un nuovo punto (5:2) lì.
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 2, 3, ObjectExt::Box<double>(5)), fact->GetCell(defaultWorksheetIndex, 2, 4, ObjectExt::Box<double>(2)));

// Aggiungi nuovo punto (3:1)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 3, 3, ObjectExt::Box<double>(3)), fact->GetCell(defaultWorksheetIndex, 3, 4, ObjectExt::Box<double>(1)));

// Aggiungi nuovo punto (2:2)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 4, 3, ObjectExt::Box<double>(2)), fact->GetCell(defaultWorksheetIndex, 4, 4, ObjectExt::Box<double>(2)));

// Aggiungi nuovo punto (5:1)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 5, 3, ObjectExt::Box<double>(5)), fact->GetCell(defaultWorksheetIndex, 5, 4, ObjectExt::Box<double>(1)));

// Modifica dell'indicatore della serie di grafici
series->get_Marker()->set_Size(10);
series->get_Marker()->set_Symbol(MarkerStyleType::Circle);

// Salva il file PPTX
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Quella che segue è l’immagine del grafico sparso generato dal codice di esempio.

Crea un grafico sparso nelle presentazioni di PowerPoint

Crea un grafico dell’istogramma nelle presentazioni di PowerPoint

Di seguito sono riportati i passaggi per creare un grafico a istogramma nelle presentazioni PowerPoint.

Di seguito è riportato il codice di esempio per creare un grafico a istogramma nelle presentazioni di PowerPoint utilizzando C++.

// Percorso del file di output.
const String outputFilePath = u"OutputDirectory\\histogram_chart.pptx";

// Istanziare la classe Presentation che rappresenta il file PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Accedi alla prima diapositiva
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Aggiungi grafico con dati predefiniti
System::SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::Histogram, 50, 50, 500, 400);

// Elimina serie e categorie generate predefinite
chart->get_ChartData()->get_Categories()->Clear();
chart->get_ChartData()->get_Series()->Clear();

// Ottenere la cartella di lavoro dei dati del grafico
System::SharedPtr<IChartDataWorkbook> wb = chart->get_ChartData()->get_ChartDataWorkbook();

wb->Clear(0);

// Aggiungi serie
System::SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->Add(Aspose::Slides::Charts::ChartType::Histogram);

// Popolare i dati della serie
series->get_DataPoints()->AddDataPointForHistogramSeries(wb->GetCell(0, u"A1", System::ObjectExt::Box<int32_t>(15)));
series->get_DataPoints()->AddDataPointForHistogramSeries(wb->GetCell(0, u"A2", System::ObjectExt::Box<int32_t>(-41)));
series->get_DataPoints()->AddDataPointForHistogramSeries(wb->GetCell(0, u"A3", System::ObjectExt::Box<int32_t>(16)));
series->get_DataPoints()->AddDataPointForHistogramSeries(wb->GetCell(0, u"A4", System::ObjectExt::Box<int32_t>(10)));
series->get_DataPoints()->AddDataPointForHistogramSeries(wb->GetCell(0, u"A5", System::ObjectExt::Box<int32_t>(-23)));
series->get_DataPoints()->AddDataPointForHistogramSeries(wb->GetCell(0, u"A6", System::ObjectExt::Box<int32_t>(16)));

// Imposta il tipo di aggregazione dell'asse
chart->get_Axes()->get_HorizontalAxis()->set_AggregationType(Aspose::Slides::Charts::AxisAggregationType::Automatic);

// Salva il file PPTX
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Quella che segue è l’immagine del grafico dell’istogramma generato dal codice di esempio.

Crea un grafico dell'istogramma nelle presentazioni di PowerPoint

Grafici supportati aggiuntivi

Oltre ai grafici mostrati sopra, Aspose.Slides per C++ supporta molti più tipi di grafici. Puoi visualizzare l’elenco completo dei tipi di grafici supportati con il codice di esempio leggendo questo articolo della documentazione.

Ottieni una licenza gratuita

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

Conclusione

In questo articolo hai imparato come aggiungere grafici nelle diapositive di PowerPoint usando C++. In particolare, hai imparato come aggiungere grafici a colonne, sparsi, a torta e istogramma nelle tue presentazioni PowerPoint. Inoltre, hai visto che l’API Aspose.Slides per C++ fornisce molti più tipi di grafici da utilizzare nelle presentazioni di PowerPoint. Oltre ai grafici, l’API dimostra un sacco di funzionalità per migliorare le tue presentazioni PowerPoint. Puoi esplorare l’API in dettaglio utilizzando la documentazione ufficiale. In caso di domande, non esitare a contattarci sul forum di supporto gratuito.

Guarda anche