Vytvářejte grafy v prezentacích PowerPoint

Grafy jsou vynikajícím nástrojem pro stručné zobrazení dat. Navíc usnadňují spotřebu velkého množství dat tím, že je vizuálně znázorňují. Přidání grafů do vašich prezentací může být užitečné při prezentaci dat, jako jsou trendy růstu společnosti nebo míra přijetí produktu. Za tímto účelem vás tento článek naučí, jak vytvářet grafy v PowerPointu PPT nebo PPTX v C++.

C++ API pro vytváření grafů v PowerPoint PPT

Aspose.Slides for C++ je nativní knihovna C++, která podporuje vytváření, čtení a manipulaci se soubory PowerPoint. Rozhraní API také podporuje vytváření grafů v prezentacích PowerPoint. Rozhraní API můžete nainstalovat buď prostřednictvím NuGet, nebo si jej stáhnout přímo ze sekce Downloads.

PM> Install-Package Aspose.Slides.Cpp

Vytvořte sloupcový graf v PowerPoint PPT pomocí C++

Následují kroky k vytvoření sloupcového grafu v PowerPoint PPT.

Následuje ukázkový kód pro přidání sloupcového grafu do PowerPointové prezentace pomocí C++.

// Cesta k výstupnímu souboru.
const String outputFilePath = u"OutputDirectory\\column_chart.pptx";

// Třída okamžité prezentace, která představuje soubor PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Přístup k prvnímu snímku
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Přidat graf s výchozími daty
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);

// Nastavení indexu datového listu grafu
int defaultWorksheetIndex = 0;

// Získání sešitu dat grafu
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// Nastavení názvu grafu
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);

// Smazat výchozí vygenerované série a kategorie
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();

// Přidat sérii
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());

// Přidat kategorie
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")));

// Vezměte první sérii grafů
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// Vyplňte data série
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)));

// Nastavení barvy výplně pro sérii
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Blue());

// Vezměte druhou řadu grafů
series = chart->get_ChartData()->get_Series()->idx_get(1);

// Vyplňte data série
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)));

// Nastavení barvy výplně pro sérii
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Orange());

// První štítek bude zobrazovat název kategorie
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);

// Zobrazit hodnotu pro třetí štítek
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"/");

// Uložte soubor PPTX
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Následuje obrázek sloupcového grafu generovaného ukázkovým kódem.

Vytvořte sloupcový graf v PowerPoint PPT

Vytváření výsečového grafu v PowerPoint PPTX pomocí C++

Následují kroky k přidání výsečového grafu do PowerPoint PPTX.

Následuje ukázkový kód pro přidání výsečového grafu v PowerPoint PPTX pomocí C++.

// Cesta k výstupnímu souboru.
const String outputFilePath = u"OutputDirectory\\pie_chart.pptx";

// Třída okamžité prezentace, která představuje soubor PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Přístup k prvnímu snímku
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Přidat graf s výchozími daty
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::Pie, 0, 0, 500, 500);

// Nastavení názvu grafu
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);

// Smazat výchozí vygenerované série a kategorie
chart->get_ChartData()->get_Series()->Clear();
chart->get_ChartData()->get_Categories()->Clear();

// Nastavení indexu datového listu grafu
int defaultWorksheetIndex = 0;

// Získání sešitu dat grafu
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// Přidat kategorie
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")));

// Přidat sérii
chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 0, 1, ObjectExt::Box<System::String>(u"Series 1")), chart->get_Type());

// Vezměte první sérii grafů
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// Vyplňte data série
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());

// Nastavení hranice sektoru
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());

// Nastavení hranice sektoru
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());

// Nastavení hranice sektoru
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);

// Vytvořte vlastní štítky pro každou kategorii v sérii
SharedPtr<IDataLabel> lbl1 = series->get_DataPoints()->idx_get(0)->get_Label();

// lbl.ShowCategoryName = true;
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);

// Zobrazení vůdčích čar pro graf
series->get_Labels()->get_DefaultDataLabelFormat()->set_ShowLeaderLines(true);

// Nastavení úhlu rotace pro sektory koláčového grafu
chart->get_ChartData()->get_SeriesGroups()->idx_get(0)->set_FirstSliceAngle(180);

// Uložte soubor PPTX
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Následuje obrázek výsečového grafu generovaného ukázkovým kódem.

Vytvořte výsečový graf v PowerPoint PPTX

Vytvořte bodový graf v prezentaci PPT v C++

Následují kroky pro přidání rozptýleného grafu na snímky aplikace PowerPoint.

Následuje ukázkový kód pro přidání rozptýleného grafu do PowerPoint PPT v C++.

// Cesta k výstupnímu souboru.
const String outputFilePath = u"OutputDirectory\\scattered_chart.pptx";

// Třída okamžité prezentace, která představuje soubor PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Přístup k prvnímu snímku
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Přidat graf s výchozími daty
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ScatterWithSmoothLines, 0, 0, 500, 500);

// Smazat výchozí vygenerované série 
chart->get_ChartData()->get_Series()->Clear();

// Nastavení indexu datového listu grafu
int defaultWorksheetIndex = 0;

// Získání sešitu dat grafu
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// Přidat sérii
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());

// Vezměte první sérii grafů
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// Přidejte tam nový bod (1:3).
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 2, 1, ObjectExt::Box<double>(1)), fact->GetCell(defaultWorksheetIndex, 2, 2, ObjectExt::Box<double>(3)));

// Přidat nový bod (2:10)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 3, 1, ObjectExt::Box<double>(2)), fact->GetCell(defaultWorksheetIndex, 3, 2, ObjectExt::Box<double>(10)));

// Upravte typ série
series->set_Type(ChartType::ScatterWithStraightLinesAndMarkers);

// Změna značky řady grafu
series->get_Marker()->set_Size(10);
series->get_Marker()->set_Symbol(MarkerStyleType::Star);

// Vezměte druhou řadu grafů
series = chart->get_ChartData()->get_Series()->idx_get(1);

// Přidejte tam nový bod (5:2).
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 2, 3, ObjectExt::Box<double>(5)), fact->GetCell(defaultWorksheetIndex, 2, 4, ObjectExt::Box<double>(2)));

// Přidat nový bod (3:1)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 3, 3, ObjectExt::Box<double>(3)), fact->GetCell(defaultWorksheetIndex, 3, 4, ObjectExt::Box<double>(1)));

// Přidat nový bod (2:2)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 4, 3, ObjectExt::Box<double>(2)), fact->GetCell(defaultWorksheetIndex, 4, 4, ObjectExt::Box<double>(2)));

// Přidat nový bod (5:1)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 5, 3, ObjectExt::Box<double>(5)), fact->GetCell(defaultWorksheetIndex, 5, 4, ObjectExt::Box<double>(1)));

// Změna značky řady grafu
series->get_Marker()->set_Size(10);
series->get_Marker()->set_Symbol(MarkerStyleType::Circle);

// Uložte soubor PPTX
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Následuje obrázek rozptýleného grafu generovaného ukázkovým kódem.

Vytvořte bodový graf v PowerPoint PPT

C++ Vytvořte histogram v PowerPointu PPT

Níže jsou uvedeny kroky k vytvoření histogramového grafu v prezentacích PowerPoint.

Následuje ukázkový kód pro vytvoření histogramového grafu v prezentacích PowerPoint pomocí C++.

// Cesta k výstupnímu souboru.
const String outputFilePath = u"OutputDirectory\\histogram_chart.pptx";

// Třída okamžité prezentace, která představuje soubor PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Přístup k prvnímu snímku
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Přidat graf s výchozími daty
System::SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::Histogram, 50, 50, 500, 400);

// Smazat výchozí vygenerované série a kategorie
chart->get_ChartData()->get_Categories()->Clear();
chart->get_ChartData()->get_Series()->Clear();

// Získání sešitu dat grafu
System::SharedPtr<IChartDataWorkbook> wb = chart->get_ChartData()->get_ChartDataWorkbook();

wb->Clear(0);

// Přidat sérii
System::SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->Add(Aspose::Slides::Charts::ChartType::Histogram);

// Vyplňte data série
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)));

// Nastavte typ agregace os
chart->get_Axes()->get_HorizontalAxis()->set_AggregationType(Aspose::Slides::Charts::AxisAggregationType::Automatic);

// Uložte soubor PPTX
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Následuje obrázek histogramového grafu generovaného ukázkovým kódem.

Vytvořte histogram v prezentacích PowerPoint

Další podporované grafy

Kromě výše uvedených grafů podporuje Aspose.Slides for C++ mnohem více typů grafů. Úplný seznam podporovaných typů grafů s ukázkovým kódem si můžete prohlédnout v tomto článku dokumentace.

C++ PowerPoint API – Získejte bezplatnou licenci

Můžete požádat o bezplatnou dočasnou licenci a vyzkoušet API bez omezení hodnocení.

Závěr

V tomto článku jste se naučili přidávat grafy do snímků aplikace PowerPoint pomocí C++. Konkrétně jste se naučili přidávat sloupcové, bodové, výsečové a histogramy do prezentací aplikace PowerPoint. Navíc jste viděli, že Aspose.Slides for C++ API poskytuje mnohem více typů grafů, které můžete použít ve svých prezentacích PowerPoint.

Aspose.Slides for C++ – Přečtěte si více

Kromě grafů nabízí Aspose.Slides for C++ spoustu funkcí pro vylepšení vašich prezentací v PowerPointu. Rozhraní API můžete podrobně prozkoumat pomocí oficiální dokumentace. V případě jakýchkoli dotazů nás neváhejte kontaktovat na free support forum.

Viz také