Skapa diagram i PowerPoint-presentationer

Diagram är ett utmärkt verktyg för att kortfattat visa data. Dessutom gör de det lättare att konsumera stora mängder data genom att representera den visuellt. Att lägga till diagram i dina presentationer kan vara till hjälp när du presenterar data som företagets tillväxttrender eller produktanvändningshastighet. För detta ändamål kommer den här artikeln att lära dig hur du skapar diagram i PowerPoint PPT eller PPTX i C++.

C++ API för att skapa diagram i PowerPoint PPT

Aspose.Slides for C++ är ett inbyggt C++-bibliotek som stöder att skapa, läsa och manipulera PowerPoint-filer. API:et stöder också att skapa diagram i PowerPoint-presentationer. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet Nedladdningar.

PM> Install-Package Aspose.Slides.Cpp

Skapa kolumndiagram i PowerPoint PPT med C++

Följande är stegen för att skapa ett kolumndiagram i PowerPoint PPT.

Följande är exempelkoden för att lägga till ett kolumndiagram i PowerPoint-presentation med C++.

// Utdatafilsökväg.
const String outputFilePath = u"OutputDirectory\\column_chart.pptx";

// Instantiate Presentation-klass som representerar PPTX-fil
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Få tillgång till första bilden
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Lägg till diagram med standarddata
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);

// Ställa in index för diagramdatabladet
int defaultWorksheetIndex = 0;

// Hämta arbetsboken för diagramdata
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// Inställningsdiagram Titel
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);

// Ta bort standardgenererade serier och kategorier
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();

// Lägg till serier
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());

// Lägg till kategorier
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")));

// Ta första diagramserien
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// Fyll i seriedata
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)));

// Ställa in fyllningsfärg för serier
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Blue());

// Ta andra diagramserien
series = chart->get_ChartData()->get_Series()->idx_get(1);

// Fyll i seriedata
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)));

// Ställa in fyllningsfärg för serier
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Orange());

// Första etiketten kommer att visa Kategorinamn
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);

// Visa värde för tredje etikett
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"/");

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

Följande är bilden av kolumndiagrammet som genereras av exempelkoden.

Skapa kolumndiagram i PowerPoint PPT

Skapa cirkeldiagram i PowerPoint PPTX med C++

Följande är stegen för att lägga till ett cirkeldiagram till PowerPoint PPTX.

Följande är exempelkoden för att lägga till ett cirkeldiagram i PowerPoint PPTX med C++.

// Utdatafilsökväg.
const String outputFilePath = u"OutputDirectory\\pie_chart.pptx";

// Instantiate Presentation-klass som representerar PPTX-fil
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Få tillgång till första bilden
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Lägg till diagram med standarddata
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::Pie, 0, 0, 500, 500);

// Inställningsdiagram Titel
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);

// Ta bort standardgenererade serier och kategorier
chart->get_ChartData()->get_Series()->Clear();
chart->get_ChartData()->get_Categories()->Clear();

// Ställa in index för diagramdatabladet
int defaultWorksheetIndex = 0;

// Hämta arbetsboken för diagramdata
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// Lägg till kategorier
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")));

// Lägg till serier
chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 0, 1, ObjectExt::Box<System::String>(u"Series 1")), chart->get_Type());

// Ta första diagramserien
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// Fyll i seriedata
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());

// Ställa in sektorgräns
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());

// Ställa in sektorgräns
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());

// Ställa in sektorgräns
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);

// Skapa anpassade etiketter för varje kategori i serien
SharedPtr<IDataLabel> lbl1 = series->get_DataPoints()->idx_get(0)->get_Label();

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

// Visar ledarlinjer för diagram
series->get_Labels()->get_DefaultDataLabelFormat()->set_ShowLeaderLines(true);

// Ställa in rotationsvinkel för cirkeldiagramsektorer
chart->get_ChartData()->get_SeriesGroups()->idx_get(0)->set_FirstSliceAngle(180);

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

Följande är bilden av cirkeldiagrammet som genereras av exempelkoden.

Skapa cirkeldiagram i PowerPoint PPTX

Skapa spridda diagram i PPT-presentation i C++

Följande är stegen för att lägga till ett spritt diagram till PowerPoint-bilder.

Följande är exempelkoden för att lägga till ett spritt diagram till PowerPoint PPT i C++.

// Utdatafilsökväg.
const String outputFilePath = u"OutputDirectory\\scattered_chart.pptx";

// Instantiate Presentation-klass som representerar PPTX-fil
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Få tillgång till första bilden
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Lägg till diagram med standarddata
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ScatterWithSmoothLines, 0, 0, 500, 500);

// Ta bort standardgenererade serier 
chart->get_ChartData()->get_Series()->Clear();

// Ställa in index för diagramdatabladet
int defaultWorksheetIndex = 0;

// Hämta arbetsboken för diagramdata
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// Lägg till serier
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());

// Ta första diagramserien
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// Lägg till ny punkt (1:3) där.
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 2, 1, ObjectExt::Box<double>(1)), fact->GetCell(defaultWorksheetIndex, 2, 2, ObjectExt::Box<double>(3)));

// Lägg till ny 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)));

// Redigera typen av serie
series->set_Type(ChartType::ScatterWithStraightLinesAndMarkers);

// Ändra diagramseriemarkören
series->get_Marker()->set_Size(10);
series->get_Marker()->set_Symbol(MarkerStyleType::Star);

// Ta den andra diagramserien
series = chart->get_ChartData()->get_Series()->idx_get(1);

// Lägg till ny punkt (5:2) där.
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 2, 3, ObjectExt::Box<double>(5)), fact->GetCell(defaultWorksheetIndex, 2, 4, ObjectExt::Box<double>(2)));

// Lägg till ny 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)));

// Lägg till ny 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)));

// Lägg till ny 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)));

// Ändra diagramseriemarkören
series->get_Marker()->set_Size(10);
series->get_Marker()->set_Symbol(MarkerStyleType::Circle);

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

Följande är bilden av det spridda diagrammet som genereras av exempelkoden.

Skapa spridda diagram i PowerPoint PPT

C++ Skapa histogramdiagram i PowerPoint PPT

Följande är stegen för att skapa ett histogramdiagram i PowerPoint-presentationer.

Följande är exempelkoden för att skapa ett histogramdiagram i PowerPoint-presentationer med C++.

// Utdatafilsökväg.
const String outputFilePath = u"OutputDirectory\\histogram_chart.pptx";

// Instantiate Presentation-klass som representerar PPTX-fil
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Få tillgång till första bilden
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// Lägg till diagram med standarddata
System::SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::Histogram, 50, 50, 500, 400);

// Ta bort standardgenererade serier och kategorier
chart->get_ChartData()->get_Categories()->Clear();
chart->get_ChartData()->get_Series()->Clear();

// Hämta arbetsboken för diagramdata
System::SharedPtr<IChartDataWorkbook> wb = chart->get_ChartData()->get_ChartDataWorkbook();

wb->Clear(0);

// Lägg till serier
System::SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->Add(Aspose::Slides::Charts::ChartType::Histogram);

// Fyll i seriedata
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)));

// Ställ in axelaggregationstyp
chart->get_Axes()->get_HorizontalAxis()->set_AggregationType(Aspose::Slides::Charts::AxisAggregationType::Automatic);

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

Följande är bilden av histogramdiagrammet som genereras av exempelkoden.

Skapa histogramdiagram i PowerPoint-presentationer

Ytterligare diagram som stöds

Förutom diagrammen som visas ovan, stöder Aspose.Slides för C++ många fler diagramtyper. Du kan se hela listan över diagramtyper som stöds med exempelkod genom att läsa denna dokumentationsartikeln.

C++ PowerPoint API - Skaffa en gratis licens

Du kan begära en gratis tillfällig licens för att prova API utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har du lärt dig hur du lägger till diagram i PowerPoint-bilder med C++. Specifikt har du lärt dig hur du lägger till kolumn-, spridda-, cirkel- och histogramdiagram i dina PowerPoint-presentationer. Dessutom har du sett att Aspose.Slides för C++ API tillhandahåller många fler diagramtyper som du kan använda i dina PowerPoint-presentationer.

Aspose.Slides för C++ - Läs mer

Förutom diagram tillhandahåller Aspose.Slides för C++ ett gäng funktioner för att förbättra dina PowerPoint-presentationer. Du kan utforska API:et i detalj genom att använda den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på gratis supportforum.

Se även