# Create PPT Charts Using C++

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

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



## Create PPT File Charts Using C++

 To create charts in a PPT 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 PPT 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 PPT 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 PPT 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 PPT file.
presentation->Save("column_chart.ppt", SaveFormat::Ppt);
presentation->Dispose();
```

## About Aspose.Slides for C++ API

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

A PPT file contains a collection of slides for a slide show. It uses the binary file format used by Microsoft PowerPoint 97-2003. A PPT file can contain text, bulleted points, images, multimedia, and other embedded OLE objects. Microsoft introduced the newer PPTX format in PowerPoint 2007. PPTX is based on Office Open XML and differs from the older binary format. Several other applications, such as OpenOffice Impress and Apple Keynote, can also create PPT files.

## Other Supported Charting Formats

- [PPTX](/slides/cpp/chart/pptx/) — Open XML presentation format
