Twórz wykresy w prezentacjach PowerPoint

Wykresy są doskonałym narzędziem do zwięzłego przedstawiania danych. Ponadto ułatwiają konsumowanie dużych ilości danych, przedstawiając je wizualnie. Dodanie wykresów do prezentacji może okazać się pomocne przy prezentowaniu danych, takich jak trendy rozwoju firmy czy stopień adopcji produktów. W tym celu w tym artykule dowiesz się, jak tworzyć wykresy w prezentacjach PowerPoint przy użyciu C++.

C++ API do tworzenia wykresów w prezentacjach PowerPoint

Aspose.Slides for C++ to natywna biblioteka C++, która obsługuje tworzenie, odczytywanie i manipulowanie plikami PowerPoint. Interfejs API obsługuje również tworzenie wykresów w prezentacjach programu PowerPoint. Możesz zainstalować API poprzez NuGet lub pobrać bezpośrednio z sekcji Downloads.

PM> Install-Package Aspose.Slides.Cpp

Utwórz wykres kolumnowy w prezentacjach PowerPoint przy użyciu C++

Poniżej przedstawiono kroki tworzenia wykresu kolumnowego w prezentacjach programu PowerPoint.

Poniżej znajduje się przykładowy kod służący do dodawania wykresu kolumnowego w prezentacji programu PowerPoint przy użyciu języka C++.

// Ścieżka pliku wyjściowego.
const String outputFilePath = u"OutputDirectory\\column_chart.pptx";

// Utwórz instancję Klasa prezentacji, która reprezentuje plik PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Uzyskaj dostęp do pierwszego slajdu
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Dodaj wykres z domyślnymi danymi
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);

// Ustawianie indeksu arkusza danych wykresu
int defaultWorksheetIndex = 0;

// Pobieranie skoroszytu danych wykresu
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// Tabela ustawień Tytuł
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);

// Usuń domyślnie wygenerowane serie i 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();

// Dodaj serię
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());

// Dodaj 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")));

// Weź pierwszą serię wykresów
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// Wypełnij dane serii
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)));

// Ustawianie koloru wypełnienia dla serii
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Blue());

// Weź drugą serię wykresów
series = chart->get_ChartData()->get_Series()->idx_get(1);

// Wypełnij dane serii
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)));

// Ustawianie koloru wypełnienia dla serii
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Orange());

// Pierwsza etykieta pokaże nazwę kategorii
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);

// Pokaż wartość dla trzeciej etykiety
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"/");

// Zapisz plik PPTX
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Poniżej znajduje się obraz wykresu kolumnowego wygenerowanego przez przykładowy kod.

Utwórz wykres kolumnowy w prezentacjach PowerPoint

Tworzenie wykresu kołowego w prezentacjach PowerPoint przy użyciu C++

Poniżej przedstawiono kroki dodawania wykresu kołowego do slajdów programu PowerPoint.

Poniżej znajduje się przykładowy kod służący do dodawania wykresu kołowego do slajdów programu PowerPoint przy użyciu języka C++.

// Ścieżka pliku wyjściowego.
const String outputFilePath = u"OutputDirectory\\pie_chart.pptx";

// Utwórz instancję Klasa prezentacji, która reprezentuje plik PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Uzyskaj dostęp do pierwszego slajdu
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Dodaj wykres z domyślnymi danymi
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::Pie, 0, 0, 500, 500);

// Tabela ustawień Tytuł
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);

// Usuń domyślnie wygenerowane serie i kategorie
chart->get_ChartData()->get_Series()->Clear();
chart->get_ChartData()->get_Categories()->Clear();

// Ustawianie indeksu arkusza danych wykresu
int defaultWorksheetIndex = 0;

// Pobieranie skoroszytu danych wykresu
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// Dodaj 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")));

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

// Weź pierwszą serię wykresów
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// Wypełnij dane serii
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());

// Ustawianie granicy sektora
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());

// Ustawianie granicy sektora
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());

// Ustawianie granicy sektora
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);

// Twórz niestandardowe etykiety dla każdej kategorii w serii
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);

// Wyświetlanie linii odniesienia dla wykresu
series->get_Labels()->get_DefaultDataLabelFormat()->set_ShowLeaderLines(true);

// Ustawianie kąta obrotu dla sektorów wykresu kołowego
chart->get_ChartData()->get_SeriesGroups()->idx_get(0)->set_FirstSliceAngle(180);

// Zapisz plik PPTX
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Poniżej znajduje się obraz wykresu kołowego wygenerowanego przez przykładowy kod.

Utwórz wykres kołowy w prezentacjach PowerPoint

Utwórz wykres rozproszony w prezentacji programu PowerPoint przy użyciu języka C++

Poniżej przedstawiono kroki dodawania wykresu rozproszonego do slajdów programu PowerPoint.

Poniżej znajduje się przykładowy kod służący do dodawania wykresu rozproszonego do slajdów programu PowerPoint przy użyciu języka C++.

// Ścieżka pliku wyjściowego.
const String outputFilePath = u"OutputDirectory\\scattered_chart.pptx";

// Utwórz instancję Klasa prezentacji, która reprezentuje plik PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Uzyskaj dostęp do pierwszego slajdu
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Dodaj wykres z domyślnymi danymi
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ScatterWithSmoothLines, 0, 0, 500, 500);

// Usuń domyślnie wygenerowane serie 
chart->get_ChartData()->get_Series()->Clear();

// Ustawianie indeksu arkusza danych wykresu
int defaultWorksheetIndex = 0;

// Pobieranie skoroszytu danych wykresu
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// Dodaj serię
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());

// Weź pierwszą serię wykresów
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// Dodaj tam nowy punkt (1:3).
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 2, 1, ObjectExt::Box<double>(1)), fact->GetCell(defaultWorksheetIndex, 2, 2, ObjectExt::Box<double>(3)));

// Dodaj nowy punkt (2:10)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 3, 1, ObjectExt::Box<double>(2)), fact->GetCell(defaultWorksheetIndex, 3, 2, ObjectExt::Box<double>(10)));

// Edytuj typ serii
series->set_Type(ChartType::ScatterWithStraightLinesAndMarkers);

// Zmiana znacznika serii wykresu
series->get_Marker()->set_Size(10);
series->get_Marker()->set_Symbol(MarkerStyleType::Star);

// Weź drugą serię wykresów
series = chart->get_ChartData()->get_Series()->idx_get(1);

// Dodaj tam nowy punkt (5:2).
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 2, 3, ObjectExt::Box<double>(5)), fact->GetCell(defaultWorksheetIndex, 2, 4, ObjectExt::Box<double>(2)));

// Dodaj nowy punkt (3:1)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 3, 3, ObjectExt::Box<double>(3)), fact->GetCell(defaultWorksheetIndex, 3, 4, ObjectExt::Box<double>(1)));

// Dodaj nowy punkt (2:2)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 4, 3, ObjectExt::Box<double>(2)), fact->GetCell(defaultWorksheetIndex, 4, 4, ObjectExt::Box<double>(2)));

// Dodaj nowy punkt (5:1)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 5, 3, ObjectExt::Box<double>(5)), fact->GetCell(defaultWorksheetIndex, 5, 4, ObjectExt::Box<double>(1)));

// Zmiana znacznika serii wykresu
series->get_Marker()->set_Size(10);
series->get_Marker()->set_Symbol(MarkerStyleType::Circle);

// Zapisz plik PPTX
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Poniżej znajduje się obraz wykresu rozproszonego wygenerowanego przez przykładowy kod.

Utwórz wykres rozproszony w prezentacjach programu PowerPoint

Utwórz wykres histogramu w prezentacjach PowerPoint

Poniżej przedstawiono kroki tworzenia wykresu histogramu w prezentacjach programu PowerPoint.

Poniżej znajduje się przykładowy kod do tworzenia wykresu histogramu w prezentacjach programu PowerPoint przy użyciu języka C++.

// Ścieżka pliku wyjściowego.
const String outputFilePath = u"OutputDirectory\\histogram_chart.pptx";

// Utwórz instancję Klasa prezentacji, która reprezentuje plik PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Uzyskaj dostęp do pierwszego slajdu
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Dodaj wykres z domyślnymi danymi
System::SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::Histogram, 50, 50, 500, 400);

// Usuń domyślnie wygenerowane serie i kategorie
chart->get_ChartData()->get_Categories()->Clear();
chart->get_ChartData()->get_Series()->Clear();

// Pobieranie skoroszytu danych wykresu
System::SharedPtr<IChartDataWorkbook> wb = chart->get_ChartData()->get_ChartDataWorkbook();

wb->Clear(0);

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

// Wypełnij dane serii
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)));

// Ustaw typ agregacji osi
chart->get_Axes()->get_HorizontalAxis()->set_AggregationType(Aspose::Slides::Charts::AxisAggregationType::Automatic);

// Zapisz plik PPTX
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Poniżej znajduje się obraz wykresu histogramu wygenerowanego przez przykładowy kod.

Utwórz wykres histogramu w prezentacjach PowerPoint

Dodatkowe obsługiwane wykresy

Poza wykresami pokazanymi powyżej, Aspose.Slides for C++ obsługuje znacznie więcej typów wykresów. Możesz wyświetlić pełną listę obsługiwanych typów wykresów wraz z przykładowym kodem, czytając ten artykuł w dokumentacji.

Uzyskaj bezpłatną licencję

Możesz poprosić o bezpłatną tymczasową licencję, aby wypróbować interfejs API bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule nauczyłeś się dodawać wykresy do slajdów programu PowerPoint przy użyciu języka C++. W szczególności nauczyłeś się dodawać wykresy kolumnowe, rozproszone, kołowe i histogramy do prezentacji programu PowerPoint. Ponadto zauważyłeś, że Aspose.Slides for C++ API zapewnia o wiele więcej typów wykresów do wykorzystania w prezentacjach PowerPoint. Oprócz wykresów, interfejs API zapewnia szereg funkcji ulepszających prezentacje programu PowerPoint. Możesz szczegółowo zapoznać się z interfejsem API, korzystając z oficjalnej dokumentacji. W przypadku jakichkolwiek pytań prosimy o kontakt z nami na darmowym forum wsparcia.

Zobacz też