PowerPoint 프레젠테이션에서 차트 만들기

차트는 데이터를 간결하게 표시하는 훌륭한 도구입니다. 또한 시각적으로 표현하여 많은 양의 데이터를 쉽게 사용할 수 있습니다. 프레젠테이션에 차트를 추가하면 회사의 성장 추세 또는 제품 채택률과 같은 데이터를 제시할 때 도움이 될 수 있습니다. 이를 위해 이 기사에서는 C++를 사용하여 PowerPoint 프레젠테이션에서 차트를 만드는 방법을 설명합니다.

PowerPoint 프레젠테이션에서 차트를 만들기 위한 C++ API

Aspose.Slides for C++은 PowerPoint 파일 생성, 읽기 및 조작을 지원하는 기본 C++ 라이브러리입니다. API는 PowerPoint 프레젠테이션에서 차트 만들기도 지원합니다. NuGet을 통해 API를 설치하거나 다운로드 섹션에서 직접 다운로드할 수 있습니다.

PM> Install-Package Aspose.Slides.Cpp

C++를 사용하여 PowerPoint 프레젠테이션에서 세로 막대형 차트 만들기

다음은 PowerPoint 프레젠테이션에서 세로 막대형 차트를 만드는 단계입니다.

다음은 C++를 사용하여 PowerPoint 프레젠테이션에 세로 막대형 차트를 추가하는 샘플 코드입니다.

// 출력 파일 경로.
const String outputFilePath = u"OutputDirectory\\column_chart.pptx";

// PPTX 파일을 나타내는 프레젠테이션 클래스 인스턴스화
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// 첫 번째 슬라이드 액세스
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// 기본 데이터가 있는 차트 추가
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);

// 차트 데이터 시트의 인덱스 설정
int defaultWorksheetIndex = 0;

// 차트 데이터 통합 문서 가져오기
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// 차트 제목 설정
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);

// 기본 생성 시리즈 및 카테고리 삭제
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();

// 시리즈 추가
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());

// 카테고리 추가
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")));

// 첫 번째 차트 시리즈 가져오기
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// 시리즈 데이터 채우기
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)));

// 시리즈의 채우기 색상 설정
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Blue());

// 두 번째 차트 시리즈 가져오기
series = chart->get_ChartData()->get_Series()->idx_get(1);

// 시리즈 데이터 채우기
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)));

// 시리즈의 채우기 색상 설정
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Orange());

// 첫 번째 레이블에는 카테고리 이름이 표시됩니다.
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);

// 세 번째 레이블의 값 표시
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"/");

// PPTX 파일 저장
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

다음은 샘플 코드로 생성된 세로 막대형 차트의 이미지입니다.

PowerPoint 프레젠테이션에서 세로 막대형 차트 만들기

C++를 사용하여 PowerPoint 프레젠테이션에서 원형 차트 만들기

다음은 PowerPoint 슬라이드에 원형 차트를 추가하는 단계입니다.

다음은 C++를 사용하여 PowerPoint 슬라이드에 원형 차트를 추가하는 샘플 코드입니다.

// 출력 파일 경로.
const String outputFilePath = u"OutputDirectory\\pie_chart.pptx";

// PPTX 파일을 나타내는 프레젠테이션 클래스 인스턴스화
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// 첫 번째 슬라이드 액세스
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// 기본 데이터가 있는 차트 추가
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::Pie, 0, 0, 500, 500);

// 차트 제목 설정
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);

// 기본 생성 시리즈 및 카테고리 삭제
chart->get_ChartData()->get_Series()->Clear();
chart->get_ChartData()->get_Categories()->Clear();

// 차트 데이터 시트의 인덱스 설정
int defaultWorksheetIndex = 0;

// 차트 데이터 통합 문서 가져오기
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// 카테고리 추가
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")));

// 시리즈 추가
chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 0, 1, ObjectExt::Box<System::String>(u"Series 1")), chart->get_Type());

// 첫 번째 차트 시리즈 가져오기
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// 시리즈 데이터 채우기
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());

// 섹터 경계 설정
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());

// 섹터 경계 설정
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());

// 섹터 경계 설정
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);

// 시리즈의 각 범주에 대한 사용자 지정 레이블 만들기
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);

// 차트의 지시선 표시
series->get_Labels()->get_DefaultDataLabelFormat()->set_ShowLeaderLines(true);

// 원형 차트 섹터의 회전 각도 설정
chart->get_ChartData()->get_SeriesGroups()->idx_get(0)->set_FirstSliceAngle(180);

// PPTX 파일 저장
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

다음은 샘플 코드로 생성된 파이 차트의 이미지입니다.

PowerPoint 프레젠테이션에서 원형 차트 만들기

C++를 사용하여 PowerPoint 프레젠테이션에서 분산형 차트 만들기

다음은 PowerPoint 슬라이드에 분산형 차트를 추가하는 단계입니다.

다음은 C++를 사용하여 PowerPoint 슬라이드에 분산형 차트를 추가하는 샘플 코드입니다.

// 출력 파일 경로.
const String outputFilePath = u"OutputDirectory\\scattered_chart.pptx";

// PPTX 파일을 나타내는 Presentation 클래스 인스턴스화
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// 첫 번째 슬라이드 액세스
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// 기본 데이터가 있는 차트 추가
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ScatterWithSmoothLines, 0, 0, 500, 500);

// 기본 생성 시리즈 삭제 
chart->get_ChartData()->get_Series()->Clear();

// 차트 데이터 시트의 인덱스 설정
int defaultWorksheetIndex = 0;

// 차트 데이터 통합 문서 가져오기
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

// 시리즈 추가
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());

// 첫 번째 차트 시리즈 가져오기
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

// 거기에 새로운 점(1:3)을 추가합니다.
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 2, 1, ObjectExt::Box<double>(1)), fact->GetCell(defaultWorksheetIndex, 2, 2, ObjectExt::Box<double>(3)));

// 새 포인트 추가(2:10)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 3, 1, ObjectExt::Box<double>(2)), fact->GetCell(defaultWorksheetIndex, 3, 2, ObjectExt::Box<double>(10)));

// 시리즈 유형 편집
series->set_Type(ChartType::ScatterWithStraightLinesAndMarkers);

// 차트 시리즈 마커 변경
series->get_Marker()->set_Size(10);
series->get_Marker()->set_Symbol(MarkerStyleType::Star);

// 두 번째 차트 시리즈 가져오기
series = chart->get_ChartData()->get_Series()->idx_get(1);

// 거기에 새 점(5:2)을 추가합니다.
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 2, 3, ObjectExt::Box<double>(5)), fact->GetCell(defaultWorksheetIndex, 2, 4, ObjectExt::Box<double>(2)));

// 새 포인트 추가(3:1)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 3, 3, ObjectExt::Box<double>(3)), fact->GetCell(defaultWorksheetIndex, 3, 4, ObjectExt::Box<double>(1)));

// 새 포인트 추가(2:2)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 4, 3, ObjectExt::Box<double>(2)), fact->GetCell(defaultWorksheetIndex, 4, 4, ObjectExt::Box<double>(2)));

// 새 포인트 추가(5:1)
series->get_DataPoints()->AddDataPointForScatterSeries(fact->GetCell(defaultWorksheetIndex, 5, 3, ObjectExt::Box<double>(5)), fact->GetCell(defaultWorksheetIndex, 5, 4, ObjectExt::Box<double>(1)));

// 차트 시리즈 마커 변경
series->get_Marker()->set_Size(10);
series->get_Marker()->set_Symbol(MarkerStyleType::Circle);

// PPTX 파일 저장
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

다음은 샘플 코드에 의해 생성된 산점도의 이미지입니다.

PowerPoint 프레젠테이션에서 분산형 차트 만들기

PowerPoint 프레젠테이션에서 히스토그램 차트 만들기

다음은 PowerPoint 프레젠테이션에서 히스토그램 차트를 만드는 단계입니다.

다음은 C++를 사용하여 PowerPoint 프레젠테이션에서 히스토그램 차트를 만드는 샘플 코드입니다.

// 출력 파일 경로.
const String outputFilePath = u"OutputDirectory\\histogram_chart.pptx";

// PPTX 파일을 나타내는 프레젠테이션 클래스 인스턴스화
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// 첫 번째 슬라이드 액세스
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

// 기본 데이터가 있는 차트 추가
System::SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::Histogram, 50, 50, 500, 400);

// 기본 생성 시리즈 및 카테고리 삭제
chart->get_ChartData()->get_Categories()->Clear();
chart->get_ChartData()->get_Series()->Clear();

// 차트 데이터 통합 문서 가져오기
System::SharedPtr<IChartDataWorkbook> wb = chart->get_ChartData()->get_ChartDataWorkbook();

wb->Clear(0);

// 시리즈 추가
System::SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->Add(Aspose::Slides::Charts::ChartType::Histogram);

// 시리즈 데이터 채우기
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)));

// 축 집계 유형 설정
chart->get_Axes()->get_HorizontalAxis()->set_AggregationType(Aspose::Slides::Charts::AxisAggregationType::Automatic);

// PPTX 파일 저장
pres->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

다음은 샘플 코드로 생성된 히스토그램 차트의 이미지입니다.

PowerPoint 프레젠테이션에서 히스토그램 차트 만들기

추가 지원 차트

위에 표시된 차트 외에도 C++용 Aspose.Slides는 더 많은 차트 유형을 지원합니다. 문서 문서를 읽으면 샘플 코드와 함께 지원되는 차트 유형의 전체 목록을 볼 수 있습니다.

무료 라이선스 받기

무료 임시 라이선스를 요청하여 평가 제한 없이 API를 사용해 볼 수 있습니다.

결론

이 문서에서는 C++를 사용하여 PowerPoint 슬라이드에 차트를 추가하는 방법을 배웠습니다. 특히 PowerPoint 프레젠테이션에 세로 막대형, 분산형, 원형 및 히스토그램 차트를 추가하는 방법을 배웠습니다. 또한 Aspose.Slides for C++ API는 PowerPoint 프레젠테이션 내에서 사용할 수 있는 훨씬 더 많은 차트 유형을 제공합니다. 차트 외에도 API는 PowerPoint 프레젠테이션을 향상시키기 위한 많은 기능을 입증합니다. 공식문서를 통해 API를 자세히 살펴볼 수 있다. 질문이 있는 경우 무료 지원 포럼에 문의해 주십시오.

또한보십시오