# Create PPTX Charts Using C++

> C++ example code to create charts in PPTX presentations on Windows and Linux.

Source: https://products.aspose.com/slides/cpp/chart/pptx/
Updated: 2026-08-11



## Create PPTX File Charts Using C++

 To create charts in a PPTX file, use
 [Aspose.Slides for C++](/slides/cpp/)
 API, a feature-rich and easy-to-use presentation manipulation API for C++. To download the latest version, open the
 [NuGet](https://www.nuget.org/packages/Aspose.Slides.Cpp/)
 Package Manager, search for
 **Aspose.Slides.Cpp**
 and install. You may also use the following command from the Package Manager Console.

### Command

```cpp
PM> Install-Package Aspose.Slides.Cpp
```

## How to Create Charts in PPTX Files Using C++

You can create a basic chart with [Aspose.Slides for C++](/slides/cpp/) in just a few lines of code.

Instantiate the Presentation class.

Access the first slide.

Add a chart with default data.

Set the index of the chart data sheet.

Get the chart data workbook.

Set the chart title.

Delete default generated series and categories.

Add series and categories.

Take the first chart series and populate its data.

Set the fill color for the series.

Save the PPTX file.

## System Requirements

 Aspose.Slides for C++ supports all major platforms and operating systems. Please make sure that you have the following prerequisites.

-  Microsoft Windows, Linux, macOS, or another compatible OS with the supported C++ runtime.
-  Aspose.Slides for C++ library referenced in your project.

### Create PPTX Files Chart - C++

```cpp
auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

// Add a chart with default data.
auto chart = slide->get_Shapes()->AddChart(ChartType::ClusteredColumn, 0, 0, 500, 500);

// Set the index of the chart data sheet.
int defaultWorksheetIndex = 0;

// Get the chart data workbook.
auto chartDataWorkbook = chart->get_ChartData()->get_ChartDataWorkbook();

// Set the chart title.
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);

// Delete the default generated series and categories.
chart->get_ChartData()->get_Series()->Clear();
chart->get_ChartData()->get_Categories()->Clear();

// Add series.
chart->get_ChartData()->get_Series()->Add(chartDataWorkbook->GetCell(defaultWorksheetIndex, 0, 1, ObjectExt::Box<String>(u"Series 1")), chart->get_Type());
chart->get_ChartData()->get_Series()->Add(chartDataWorkbook->GetCell(defaultWorksheetIndex, 0, 2, ObjectExt::Box<String>(u"Series 2")), chart->get_Type());

// Add categories.
chart->get_ChartData()->get_Categories()->Add(chartDataWorkbook->GetCell(defaultWorksheetIndex, 1, 0, ObjectExt::Box<String>(u"Category 1")));
chart->get_ChartData()->get_Categories()->Add(chartDataWorkbook->GetCell(defaultWorksheetIndex, 2, 0, ObjectExt::Box<String>(u"Category 2")));
chart->get_ChartData()->get_Categories()->Add(chartDataWorkbook->GetCell(defaultWorksheetIndex, 3, 0, ObjectExt::Box<String>(u"Category 3")));

// Take the first chart series.
auto series = chart->get_ChartData()->get_Series()->idx_get(0);

// Populate series data.
series->get_DataPoints()->AddDataPointForBarSeries(chartDataWorkbook->GetCell(defaultWorksheetIndex, 1, 1, ObjectExt::Box(20)));
series->get_DataPoints()->AddDataPointForBarSeries(chartDataWorkbook->GetCell(defaultWorksheetIndex, 2, 1, ObjectExt::Box(50)));
series->get_DataPoints()->AddDataPointForBarSeries(chartDataWorkbook->GetCell(defaultWorksheetIndex, 3, 1, ObjectExt::Box(30)));

// Set the fill color for the series.
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Blue());

// Take the second chart series.
series = chart->get_ChartData()->get_Series()->idx_get(1);

// Populate series data.
series->get_DataPoints()->AddDataPointForBarSeries(chartDataWorkbook->GetCell(defaultWorksheetIndex, 1, 2, ObjectExt::Box(30)));
series->get_DataPoints()->AddDataPointForBarSeries(chartDataWorkbook->GetCell(defaultWorksheetIndex, 2, 2, ObjectExt::Box(10)));
series->get_DataPoints()->AddDataPointForBarSeries(chartDataWorkbook->GetCell(defaultWorksheetIndex, 3, 2, ObjectExt::Box(60)));

// Set the fill color for the series.
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(Color::get_Orange());

// Show the category name for the first label.
auto dataLabel = series->get_DataPoints()->idx_get(0)->get_Label();
dataLabel->get_DataLabelFormat()->set_ShowCategoryName(true);

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

// Show the value for the third label.
dataLabel = series->get_DataPoints()->idx_get(2)->get_Label();
dataLabel->get_DataLabelFormat()->set_ShowValue(true);
dataLabel->get_DataLabelFormat()->set_ShowSeriesName(true);
dataLabel->get_DataLabelFormat()->set_Separator(u"/");

// Save the PPTX file.
presentation->Save("column_chart.pptx", SaveFormat::Pptx);
presentation->Dispose();
```

## About Aspose.Slides for C++ API

 Create PPTX presentation charts online by visiting the
 [Live Demos website](https://products.aspose.app/slides/chart).
 The live demo has the following benefits:

PPTX files are presentation files created by Microsoft PowerPoint and other presentation apps. Unlike the older binary PPT format, PPTX is based on Office Open XML. A presentation contains slides that can include text, images, formatting, animations, and other media. Slides are shown to an audience as slide shows with custom presentation settings.

## Other Supported Charting Formats

- [PPT](/slides/cpp/chart/ppt/) — PowerPoint 97-2003 Presentation
