ایجاد نمودار در ارائه پاورپوینت

نمودارها ابزاری عالی برای نمایش مختصر داده ها هستند. علاوه بر این، آنها مصرف مقادیر زیادی از داده ها را با نمایش بصری آسان تر می کنند. افزودن نمودارها به ارائه‌های شما ممکن است هنگام ارائه داده‌هایی مانند روند رشد شرکت یا نرخ پذیرش محصول مفید باشد. برای این منظور، این مقاله به شما یاد می دهد که چگونه با استفاده از C++ نمودارهایی را در ارائه های پاورپوینت ایجاد کنید.

C++ API برای ایجاد نمودار در ارائه پاورپوینت

Aspose.Slides for C++ یک کتابخانه بومی C++ است که از ایجاد، خواندن و دستکاری فایل های پاورپوینت پشتیبانی می کند. API همچنین از ایجاد نمودار در ارائه های پاورپوینت پشتیبانی می کند. می‌توانید API را از طریق NuGet نصب کنید یا آن را مستقیماً از بخش Downloads دانلود کنید.

PM> Install-Package Aspose.Slides.Cpp

ایجاد نمودار ستونی در ارائه های پاورپوینت با استفاده از ++C

در زیر مراحل ایجاد نمودار ستونی در ارائه های پاورپوینت آورده شده است.

کد زیر نمونه ای برای اضافه کردن نمودار ستونی در ارائه پاورپوینت با استفاده از ++C است.

// مسیر فایل خروجی
const String outputFilePath = u"OutputDirectory\\column_chart.pptx";

// کلاس Instantiation Presentation که فایل 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);

تصویر زیر نمودار ستونی تولید شده توسط کد نمونه است.

ایجاد نمودار ستونی در ارائه های پاورپوینت

ایجاد نمودار دایره ای در ارائه های پاورپوینت با استفاده از C++

مراحل زیر برای افزودن نمودار دایره ای به اسلایدهای پاورپوینت آورده شده است.

کد زیر نمونه ای برای افزودن نمودار دایره ای در اسلایدهای پاورپوینت با استفاده از C++ است.

// مسیر فایل خروجی
const String outputFilePath = u"OutputDirectory\\pie_chart.pptx";

// کلاس Instantiation Presentation که فایل 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);

تصویر زیر نمودار دایره ای تولید شده توسط کد نمونه است.

ایجاد نمودار دایره ای در ارائه های پاورپوینت

ایجاد نمودار پراکنده در ارائه پاورپوینت با استفاده از C++

مراحل زیر برای افزودن نمودار پراکنده به اسلایدهای پاورپوینت آورده شده است.

کد زیر نمونه ای برای افزودن نمودار پراکنده به اسلایدهای پاورپوینت با استفاده از ++C است.

// مسیر فایل خروجی
const String outputFilePath = u"OutputDirectory\\scattered_chart.pptx";

// کلاس Instantiation Presentation که فایل 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::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);

تصویر زیر نمودار پراکنده تولید شده توسط کد نمونه است.

ایجاد نمودار پراکنده در ارائه پاورپوینت

ایجاد نمودار هیستوگرام در ارائه پاورپوینت

در زیر مراحل ایجاد نمودار هیستوگرام در ارائه های پاورپوینت آورده شده است.

کد زیر نمونه ای برای ایجاد نمودار هیستوگرام در ارائه های پاورپوینت با استفاده از C++ است.

// مسیر فایل خروجی
const String outputFilePath = u"OutputDirectory\\histogram_chart.pptx";

// کلاس Instantiate Presentation که فایل 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);

تصویر زیر نمودار هیستوگرام تولید شده توسط کد نمونه است.

ایجاد نمودار هیستوگرام در ارائه پاورپوینت

نمودارهای پشتیبانی شده اضافی

به غیر از نمودارهای نشان داده شده در بالا، Aspose.Slides برای C++ از انواع نمودارهای بیشتری پشتیبانی می کند. می‌توانید فهرست کامل انواع نمودارهای پشتیبانی‌شده را با کد نمونه با مطالعه [این 46 مقاله مستند مشاهده کنید.

مجوز رایگان دریافت کنید

می‌توانید برای امتحان API بدون محدودیت ارزیابی، [یک مجوز موقت رایگان] درخواست کنید.

نتیجه

در این مقاله نحوه اضافه کردن نمودار در اسلایدهای پاورپوینت با استفاده از ++C را یاد گرفتید. به طور خاص، شما یاد گرفته اید که چگونه نمودارهای ستونی، پراکنده، پای و هیستوگرام را در ارائه های پاورپوینت خود اضافه کنید. علاوه بر این، دیده‌اید که Aspose.Slides for C++ API انواع نمودارهای بیشتری را برای شما فراهم می‌کند تا در ارائه‌های پاورپوینت خود از آنها استفاده کنید. علاوه بر نمودارها، API مجموعه ای از ویژگی ها را برای بهبود ارائه های پاورپوینت شما ثابت می کند. با استفاده از مستندات رسمی می‌توانید API را با جزئیات بررسی کنید. در صورت هر گونه سوال، لطفاً با ما در تالار گفتمان پشتیبانی رایگان تماس بگیرید.

همچنین ببینید