إنشاء أو تحديث مخططات عروض تقديمية PowerPoint في PHP
نظرة عامة
تصف هذه المقالة كيفية إنشاء مخططات عروض تقديمية PowerPoint في Java. يمكنك أيضًا تحديث المخططات. تغطي هذه المواضيع.
مخطط: عادي
- إنشاء مخطط PowerPoint في Java
- إنشاء مخطط عرض تقديمي في Java
- إنشاء مخطط عرض تقديمي PowerPoint في Java
مخطط: متناثر
- إنشاء مخطط متناثر في Java
- إنشاء مخطط PowerPoint متناثر في Java
- إنشاء مخطط عرض تقديمي PowerPoint متناثر في Java
مخطط: دائري
- إنشاء مخطط دائري في Java
- إنشاء مخطط PowerPoint دائري في Java
- إنشاء مخطط عرض تقديمي PowerPoint دائري في Java
مخطط: شجرة خريطة
- إنشاء مخطط شجرة خريطة في Java
- إنشاء مخطط PowerPoint شجرة خريطة في Java
- إنشاء مخطط عرض تقديمي PowerPoint شجرة خريطة في Java
مخطط: سهمي
- إنشاء مخطط سهمي في Java
- إنشاء مخطط PowerPoint سهمي في Java
- إنشاء مخطط عرض تقديمي PowerPoint سهمي في Java
مخطط: مستطيل وشاربيات
- إنشاء مخطط مستطيل وشاربيات في Java
- إنشاء مخطط PowerPoint مستطيل وشاربيات في Java
- إنشاء مخطط عرض تقديمي PowerPoint مستطيل وشاربيات في Java
مخطط: قمع
- إنشاء مخطط قمع في Java
- إنشاء مخطط PowerPoint قمع في Java
- إنشاء مخطط عرض تقديمي PowerPoint قمع في Java
مخطط: إشعاع شمسية
- إنشاء مخطط إشعاع شمسية في Java
- إنشاء مخطط PowerPoint إشعاع شمسية في Java
- إنشاء مخطط عرض تقديمي PowerPoint إشعاع شمسية في Java
مخطط: مدرج تكراري
- إنشاء مخطط مدرج تكراري في Java
- إنشاء مخطط PowerPoint مدرج تكراري في Java
- إنشاء مخطط عرض تقديمي PowerPoint مدرج تكراري في Java
مخطط: راداري
- إنشاء مخطط راداري في Java
- إنشاء مخطط PowerPoint راداري في Java
- إنشاء مخطط عرض تقديمي PowerPoint راداري في Java
مخطط: متعدد الفئات
- إنشاء مخطط متعدد الفئات في Java
- إنشاء مخطط PowerPoint متعدد الفئات في Java
- إنشاء مخطط عرض تقديمي PowerPoint متعدد الفئات في Java
مخطط: خريطة
- إنشاء مخطط خريطة في Java
- إنشاء مخطط PowerPoint خريطة في Java
- إنشاء مخطط عرض تقديمي PowerPoint خريطة في Java
إجراء: تحديث المخطط
- تحديث مخطط PowerPoint في Java
- تحديث مخطط عرض تقديمي في Java
- تحديث مخطط عرض تقديمي PowerPoint في Java
إنشاء مخطط
تساعد المخططات الأشخاص على تصور البيانات بسرعة واكتساب رؤى قد لا تكون واضحة على الفور من جدول أو ورقة عمل.
لماذا إنشاء المخططات؟
باستخدام المخططات، يمكنك
- تجميع أو تكثيف أو تلخيص كميات كبيرة من البيانات على شريحة واحدة في عرض تقديمي
- كشف الأنماط والاتجاهات في البيانات
- استنتاج اتجاه وزخم البيانات مع مرور الوقت أو بالنسبة لوحدة قياس محددة
- تحديد القيم الشاذة أو الانحرافات أو الأخطاء أو البيانات غير المنطقية
- التواصل أو تقديم بيانات معقدة
في PowerPoint، يمكنك إنشاء المخططات عبر وظيفة الإدراج، التي توفر قوالب لتصميم أنواع متعددة من المخططات. باستخدام Aspose.Slides، يمكنك إنشاء مخططات عادية (بناءً على أنواع المخططات الشائعة) ومخططات مخصصة.
إنشاء مخططات عادية
خطوات: إنشاء مخطط
- الخطوات: إنشاء مخطط PowerPoint
- الخطوات: إنشاء مخطط عرض تقديمي
- الخطوات: إنشاء مخطط عرض تقديمي PowerPoint
خطوات الكود:
- إنشاء كائن من الفئة Presentation.
- الحصول على مرجع الشريحة من خلال فهرسها.
- إضافة مخطط ببيانات معينة وتحديد نوع المخطط المفضل.
- إضافة عنوان للمخطط.
- الوصول إلى ورقة عمل بيانات المخطط.
- مسح جميع السلاسل والفئات الافتراضية.
- إضافة سلاسل وفئات جديدة.
- إضافة بعض بيانات المخطط الجديدة لسلسلة المخطط.
- إضافة لون تعبئة لسلسلة المخطط.
- إضافة تسميات لسلسلة المخطط.
- كتابة العرض التقديمي المعدل كملف PPTX.
هذا الكود PHP يوضح كيفية إنشاء مخطط عادي:
# يقوم بإنشاء فئة عرض تقديمي تمثل ملف PPTX
$pres = new Presentation();
try {
# الوصول إلى الشريحة الأولى
$sld = $pres->getSlides()->get_Item(0);
# إضافة مخطط ببياناته الافتراضية
$chart = $sld->getShapes()->addChart(ChartType::ClusteredColumn, 0, 0, 500, 500);
# تعيين عنوان المخطط
$chart->getChartTitle()->addTextFrameForOverriding("Sample Title");
$chart->getChartTitle()->getTextFrameForOverriding()->getTextFrameFormat()->setCenterText(NullableBool::True);
$chart->getChartTitle()->setHeight(20);
$chart->hasTitle();
# تعيين السلسلة الأولى لإظهار القيم
$chart->getChartData()->getSeries()->get_Item(0)->getLabels()->getDefaultDataLabelFormat()->setShowValue(true);
# تعيين الفهرس لورقة بيانات المخطط
$defaultWorksheetIndex = 0;
# الحصول على ورقة عمل بيانات المخطط
$fact = $chart->getChartData()->getChartDataWorkbook();
# حذف السلاسل والفئات المولدة افتراضيًا
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
$s = $chart->getChartData()->getSeries()->size();
$s = $chart->getChartData()->getCategories()->size();
# إضافة سلاسل جديدة
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 1, "Series 1"), $chart->getType());
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 2, "Series 2"), $chart->getType());
# إضافة فئات جديدة
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 3, 0, "Caetegoty 3"));
# أخذ السلسلة الأولى للمخطط
$series = $chart->getChartData()->getSeries()->get_Item(0);
# الآن يتم تعبئة بيانات السلسلة
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 1, 1, 20));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 2, 1, 50));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 3, 1, 30));
# تعيين لون التعبئة للسلسلة
$series->getFormat()->getFill()->setFillType(FillType::Solid);
$series->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
# أخذ السلسلة الثانية للمخطط
$series = $chart->getChartData()->getSeries()->get_Item(1);
# تعبئة بيانات السلسلة
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 1, 2, 30));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 2, 2, 10));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 3, 2, 60));
# تعيين لون التعبئة للسلسلة
$series->getFormat()->getFill()->setFillType(FillType::Solid);
$series->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->GREEN);
# إنشاء تسميات مخصصة لكل فئة للسلسلة الجديدة
# تعيين التسمية الأولى لإظهار اسم الفئة
$lbl = $series->getDataPoints()->get_Item(0)->getLabel();
$lbl->getDataLabelFormat()->setShowCategoryName(true);
$lbl = $series->getDataPoints()->get_Item(1)->getLabel();
$lbl->getDataLabelFormat()->setShowSeriesName(true);
# إظهار القيمة للتسمية الثالثة
$lbl = $series->getDataPoints()->get_Item(2)->getLabel();
$lbl->getDataLabelFormat()->setShowValue(true);
$lbl->getDataLabelFormat()->setShowSeriesName(true);
$lbl->getDataLabelFormat()->setSeparator("/");
# حفظ العرض التقديمي مع المخطط
$pres->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
إنشاء مخططات متناثرة
تُستخدم المخططات المتنثرة (المعروفة أيضًا بالمخططات النقطية أو رسومات x‑y) غالبًا للتحقق من وجود أنماط أو لإظهار الارتباط بين متغيرين.
قد ترغب في استخدام مخطط متناثر عندما
- لديك بيانات عددية مزدوجة
- لديك متغيران يرتبطان ببعضهما جيدًا
- تريد تحديد ما إذا كان المتغيران مرتبطين
- لديك متغير مستقل له قيم متعددة للمتغير التابع
الخطوات: إنشاء مخطط متناثر | الخطوات: إنشاء مخطط PowerPoint متناثر | الخطوات: إنشاء مخطط عرض تقديمي PowerPoint متناثر
- يرجى اتباع الخطوات المذكورة أعلاه في إنشاء مخططات عادية
- للخطوة الثالثة، أضف مخططًا ببيانات معينة وحدد نوع المخطط كواحد من التالي
- ChartType::ScatterWithMarkers - يمثل مخطط متناثر.
- ChartType::ScatterWithSmoothLinesAndMarkers - يمثل مخطط متناثر متصل بمنحنيات، مع علامات بيانات.
- ChartType::ScatterWithSmoothLines - يمثل مخطط متناثر متصل بمنحنيات، بدون علامات بيانات.
- ChartType::ScatterWithStraightLinesAndMarkers - يمثل مخطط متناثر متصل بخطوط، مع علامات بيانات.
- ChartType::ScatterWithStraightLines - يمثل مخطط متناثر متصل بخطوط، بدون علامات بيانات.
هذا الكود PHP يوضح كيفية إنشاء مخططات متناثرة بسلسلة مختلفة من العلامات:
# ينشئ كائن عرض تقديمي يمثل ملف PPTX
$pres = new Presentation();
try {
# يصل إلى الشريحة الأولى
$slide = $pres->getSlides()->get_Item(0);
# ينشئ المخطط الافتراضي
$chart = $slide->getShapes()->addChart(ChartType::ScatterWithSmoothLines, 0, 0, 400, 400);
# يحصل على فهرس ورقة عمل بيانات المخطط الافتراضية
$defaultWorksheetIndex = 0;
# يحصل على ورقة عمل بيانات المخطط
$fact = $chart->getChartData()->getChartDataWorkbook();
# يحذف السلسلة التجريبية
$chart->getChartData()->getSeries()->clear();
# يضيف سلاسل جديدة
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 1, 1, "Series 1"), $chart->getType());
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 1, 3, "Series 2"), $chart->getType());
# يأخذ السلسلة الأولى للمخطط
$series = $chart->getChartData()->getSeries()->get_Item(0);
# يضيف نقطة جديدة (1:3) إلى السلسلة
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 2, 1, 1), $fact->getCell($defaultWorksheetIndex, 2, 2, 3));
# يضيف نقطة جديدة (2:10)
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 3, 1, 2), $fact->getCell($defaultWorksheetIndex, 3, 2, 10));
# يغير نوع السلسلة
$series->setType(ChartType::ScatterWithStraightLinesAndMarkers);
# يغير علامة سلسلة المخطط
$series->getMarker()->setSize(10);
$series->getMarker()->setSymbol(MarkerStyleType::Star);
# يأخذ السلسلة الثانية للمخطط
$series = $chart->getChartData()->getSeries()->get_Item(1);
# يضيف نقطة جديدة (5:2) هناك
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 2, 3, 5), $fact->getCell($defaultWorksheetIndex, 2, 4, 2));
# يضيف نقطة جديدة (3:1)
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 3, 3, 3), $fact->getCell($defaultWorksheetIndex, 3, 4, 1));
# يضيف نقطة جديدة (2:2)
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 4, 3, 2), $fact->getCell($defaultWorksheetIndex, 4, 4, 2));
# يضيف نقطة جديدة (5:1)
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 5, 3, 5), $fact->getCell($defaultWorksheetIndex, 5, 4, 1));
# يغير علامة سلسلة المخطط
$series->getMarker()->setSize(10);
$series->getMarker()->setSymbol(MarkerStyleType::Circle);
$pres->save("AsposeChart_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
إنشاء مخططات دائرية
تُعد المخططات الدائرية الأنسب لإظهار العلاقة بين الجزء والكامل في البيانات، خاصةً عندما تحتوي البيانات على تصنيفات فئوية مع قيم رقمية. إذا كان لديك العديد من الأجزاء أو التسميات، قد ترغب في استخدام مخطط شريطي بدلاً من ذلك.
الخطوات: إنشاء مخطط دائري | الخطوات: إنشاء مخطط PowerPoint دائري | الخطوات: إنشاء مخطط عرض تقديمي PowerPoint دائري
- إنشاء كائن من الفئة Presentation.
- الحصول على مرجع الشريحة من خلال فهرسها.
- إضافة مخطط ببيانات افتراضية مع النوع المطلوب (في هذه الحالة، ChartType.Pie).
- الوصول إلى ChartDataWorkbook.
- مسح السلاسل والفئات الافتراضية.
- إضافة سلاسل وفئات جديدة.
- إضافة بيانات مخطط جديدة لسلسلة المخطط.
- إضافة نقاط جديدة للمخططات وإضافة ألوان مخصصة لقطاعات المخطط الدائري.
- ضبط تسميات السلاسل.
- ضبط خطوط القادة لتسميات السلاسل.
- ضبط زاوية الدوران لشرائح المخطط الدائري.
- كتابة العرض التقديمي المعدل إلى ملف PPTX.
هذا الكود PHP يوضح كيفية إنشاء مخطط دائري:
# ينشئ كائن عرض تقديمي يمثل ملف PPTX
$pres = new Presentation();
try {
# يصل إلى الشريحة الأولى
$slides = $pres->getSlides()->get_Item(0);
# يضيف مخططًا ببيانات افتراضية
$chart = $slides->getShapes()->addChart(ChartType::Pie, 100, 100, 400, 400);
# يضبط عنوان المخطط
$chart->getChartTitle()->addTextFrameForOverriding("Sample Title");
$chart->getChartTitle()->getTextFrameForOverriding()->getTextFrameFormat()->setCenterText(NullableBool::True);
$chart->getChartTitle()->setHeight(20);
$chart->setTitle(true);
# يضبط السلسلة الأولى لإظهار القيم
$chart->getChartData()->getSeries()->get_Item(0)->getLabels()->getDefaultDataLabelFormat()->setShowValue(true);
# يضبط الفهرس لورقة بيانات المخطط
$defaultWorksheetIndex = 0;
# يحصل على ورقة عمل بيانات المخطط
$fact = $chart->getChartData()->getChartDataWorkbook();
# يحذف السلاسل والفئات التي تم إنشاؤها افتراضيًا
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
# يضيف فئات جديدة
$chart->getChartData()->getCategories()->add($fact->getCell(0, 1, 0, "First Qtr"));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 2, 0, "2nd Qtr"));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 3, 0, "3rd Qtr"));
# يضيف سلسلة جديدة
$series = $chart->getChartData()->getSeries()->add($fact->getCell(0, 0, 1, "Series 1"), $chart->getType());
# يملأ بيانات السلسلة
$series->getDataPoints()->addDataPointForPieSeries($fact->getCell($defaultWorksheetIndex, 1, 1, 20));
$series->getDataPoints()->addDataPointForPieSeries($fact->getCell($defaultWorksheetIndex, 2, 1, 50));
$series->getDataPoints()->addDataPointForPieSeries($fact->getCell($defaultWorksheetIndex, 3, 1, 30));
# غير فعال في الإصدار الجديد
# إضافة نقاط جديدة وتعيين لون القطاع
# series.IsColorVaried = true;
$chart->getChartData()->getSeriesGroups()->get_Item(0)->setColorVaried(true);
$point = $series->getDataPoints()->get_Item(0);
$point->getFormat()->getFill()->setFillType(FillType::Solid);
$point->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->CYAN);
# يضبط حد القطاع
$point->getFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
$point->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GRAY);
$point->getFormat()->getLine()->setWidth(3.0);
$point->getFormat()->getLine()->setStyle(LineStyle->ThinThick);
$point->getFormat()->getLine()->setDashStyle(LineDashStyle->DashDot);
$point1 = $series->getDataPoints()->get_Item(1);
$point1->getFormat()->getFill()->setFillType(FillType::Solid);
$point1->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->ORANGE);
# يضبط حد القطاع
$point1->getFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
$point1->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
$point1->getFormat()->getLine()->setWidth(3.0);
$point1->getFormat()->getLine()->setStyle(LineStyle->Single);
$point1->getFormat()->getLine()->setDashStyle(LineDashStyle->LargeDashDot);
$point2 = $series->getDataPoints()->get_Item(2);
$point2->getFormat()->getFill()->setFillType(FillType::Solid);
$point2->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->YELLOW);
# يضبط حد القطاع
$point2->getFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
$point2->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
$point2->getFormat()->getLine()->setWidth(2.0);
$point2->getFormat()->getLine()->setStyle(LineStyle->ThinThin);
$point2->getFormat()->getLine()->setDashStyle(LineDashStyle->LargeDashDotDot);
# ينشئ تسميات مخصصة لكل فئة للسلسلة الجديدة
$lbl1 = $series->getDataPoints()->get_Item(0)->getLabel();
# lbl.ShowCategoryName = true;
$lbl1->getDataLabelFormat()->setShowValue(true);
$lbl2 = $series->getDataPoints()->get_Item(1)->getLabel();
$lbl2->getDataLabelFormat()->setShowValue(true);
$lbl2->getDataLabelFormat()->setShowLegendKey(true);
$lbl2->getDataLabelFormat()->setShowPercentage(true);
$lbl3 = $series->getDataPoints()->get_Item(2)->getLabel();
$lbl3->getDataLabelFormat()->setShowSeriesName(true);
$lbl3->getDataLabelFormat()->setShowPercentage(true);
# يظهر خطوط القادة للمخطط
$series->getLabels()->getDefaultDataLabelFormat()->setShowLeaderLines(true);
# يضبط زاوية الدوران لقطاعات مخطط الفطيرة
$chart->getChartData()->getSeriesGroups()->get_Item(0)->setFirstSliceAngle(180);
# يحفظ العرض التقديمي مع مخطط
$pres->save("PieChart_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
إنشاء مخططات خطية
تُستخدم المخططات الخطية (المعروفة أيضًا بمخططات الخط) في الحالات التي ترغب فيها بإظهار تغير القيم مع مرور الوقت. باستخدام مخطط خطي، يمكنك مقارنة الكثير من البيانات في آن واحد، وتتبع التغيرات والاتجاهات بمرور الوقت، وتسليط الضوء على الشذوذ في سلاسل البيانات، وما إلى ذلك.
- إنشاء كائن من الفئة Presentation.
- الحصول على مرجع الشريحة من خلال فهرسها.
- إضافة مخطط ببيانات افتراضية مع النوع المطلوب (في هذه الحالة،
ChartType::Line). - الوصول إلى ورقة عمل بيانات المخطط IChartDataWorkbook.
- مسح السلاسل والفئات الافتراضية.
- إضافة سلاسل وفئات جديدة.
- إضافة بيانات مخطط جديدة لسلسلة المخطط.
- كتابة العرض التقديمي المعدل إلى ملف PPTX.
هذا الكود PHP يوضح كيفية إنشاء مخطط خطي:
$pres = new Presentation();
try {
$lineChart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Line, 10, 50, 600, 350);
$pres->save("lineChart.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
افتراضيًا، يتم ربط النقاط على المخطط الخطي بخطوط مستقيمة مستمرة. إذا رغبت في ربط النقاط بخطوط متقطعة، يمكنك تحديد نوع الخط المتقطع بهذا الشكل:
$lineChart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Line, 10, 50, 600, 350);
foreach($lineChart->getChartData()->getSeries() as $series) {
$series->getFormat()->getLine()->setDashStyle(LineDashStyle->Dash);
}
إنشاء مخططات شجرة خريطة
تُعد مخططات شجرة الخريطة مثالية لبيانات المبيعات عندما تريد إظهار الحجم النسبي لفئات البيانات وفي الوقت نفسه جذب الانتباه بسرعة إلى العناصر التي تساهم بشكل كبير في كل فئة.
الخطوات: إنشاء مخطط شجرة خريطة | الخطوات: إنشاء مخطط PowerPoint شجرة خريطة | الخطوات: إنشاء مخطط عرض تقديمي PowerPoint شجرة خريطة
- إنشاء كائن من الفئة Presentation .
- الحصول على مرجع الشريحة من خلال فهرسها.
- إضافة مخطط ببيانات افتراضية مع النوع المطلوب (في هذه الحالة، ChartType.TreeMap).
- الوصول إلى ChartDataWorkbook.
- مسح السلاسل والفئات الافتراضية.
- إضافة سلاسل وفئات جديدة.
- إضافة بيانات مخطط جديدة لسلسلة المخطط.
- كتابة العرض التقديمي المعدل إلى ملف PPTX.
هذا الكود PHP يوضح كيفية إنشاء مخطط شجرة خريطة:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Treemap, 50, 50, 500, 400);
$chart->getChartData()->getCategories()->clear();
$chart->getChartData()->getSeries()->clear();
$wb = $chart->getChartData()->getChartDataWorkbook();
$wb->clear(0);
# الفرع 1
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C1", "Leaf1"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem1");
$leaf->getGroupingLevels()->setGroupingItem(2, "Branch1");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C2", "Leaf2"));
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C3", "Leaf3"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem2");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C4", "Leaf4"));
# الفرع 2
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C5", "Leaf5"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem3");
$leaf->getGroupingLevels()->setGroupingItem(2, "Branch2");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C6", "Leaf6"));
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C7", "Leaf7"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem4");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C8", "Leaf8"));
$series = $chart->getChartData()->getSeries()->add(ChartType::Treemap);
$series->getLabels()->getDefaultDataLabelFormat()->setShowCategoryName(true);
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D1", 4));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D2", 5));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D3", 3));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D4", 6));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D5", 9));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D6", 9));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D7", 4));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D8", 3));
$series->setParentLabelLayout(ParentLabelLayoutType::Overlapping);
$pres->save("Treemap.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
إنشاء مخططات سهمية
الخطوات: إنشاء مخطط سهمي | الخطوات: إنشاء مخطط PowerPoint سهمي | الخطوات: إنشاء مخطط عرض تقديمي PowerPoint سهمي
- إنشاء كائن من الفئة Presentation .
- الحصول على مرجع الشريحة من خلال فهرسها.
- إضافة مخطط ببيانات افتراضية مع النوع المطلوب (ChartType.OpenHighLowClose).
- الوصول إلى ChartDataWorkbook.
- مسح السلاسل والفئات الافتراضية.
- إضافة سلاسل وفئات جديدة.
- إضافة بيانات مخطط جديدة لسلسلة المخطط.
- تحديد تنسيق HiLowLines.
- كتابة العرض التقديمي المعدل إلى ملف PPTX.
هذا الكود PHP يوضح كيفية إنشاء مخطط سهمي:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::OpenHighLowClose, 50, 50, 600, 400, false);
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
$wb = $chart->getChartData()->getChartDataWorkbook();
$chart->getChartData()->getCategories()->add($wb->getCell(0, 1, 0, "A"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, 2, 0, "B"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, 3, 0, "C"));
$chart->getChartData()->getSeries()->add($wb->getCell(0, 0, 1, "Open"), $chart->getType());
$chart->getChartData()->getSeries()->add($wb->getCell(0, 0, 2, "High"), $chart->getType());
$chart->getChartData()->getSeries()->add($wb->getCell(0, 0, 3, "Low"), $chart->getType());
$chart->getChartData()->getSeries()->add($wb->getCell(0, 0, 4, "Close"), $chart->getType());
$series = $chart->getChartData()->getSeries()->get_Item(0);
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 1, 1, 72));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 2, 1, 25));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 3, 1, 38));
$series = $chart->getChartData()->getSeries()->get_Item(1);
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 1, 2, 172));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 2, 2, 57));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 3, 2, 57));
$series = $chart->getChartData()->getSeries()->get_Item(2);
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 1, 3, 12));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 2, 3, 12));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 3, 3, 13));
$series = $chart->getChartData()->getSeries()->get_Item(3);
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 1, 4, 25));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 2, 4, 38));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 3, 4, 50));
$chart->getChartData()->getSeriesGroups()->get_Item(0)->getUpDownBars()->setUpDownBars(true);
$chart->getChartData()->getSeriesGroups()->get_Item(0)->getHiLowLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
foreach($chart->getChartData()->getSeries() as $ser) {
$ser->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
}
$pres->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
إنشاء مخططات مستطيل وشاربيات
الخطوات: إنشاء مخطط مستطيل وشاربيات | الخطوات: إنشاء مخطط PowerPoint مستطيل وشاربيات | الخطوات: إنشاء مخطط عرض تقديمي PowerPoint مستطيل وشاربيات
- إنشاء كائن من الفئة Presentation .
- الحصول على مرجع الشريحة من خلال فهرسها.
- إضافة مخطط ببيانات افتراضية مع النوع المطلوب (ChartType.BoxAndWhisker).
- الوصول إلى ChartDataWorkbook.
- مسح السلاسل والفئات الافتراضية.
- إضافة سلاسل وفئات جديدة.
- إضافة بيانات مخطط جديدة لسلسلة المخطط.
- كتابة العرض التقديمي المعدل إلى ملف PPTX.
هذا الكود PHP يوضح كيفية إنشاء مخطط مستطيل وشاربيات:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::BoxAndWhisker, 50, 50, 500, 400);
$chart->getChartData()->getCategories()->clear();
$chart->getChartData()->getSeries()->clear();
$wb = $chart->getChartData()->getChartDataWorkbook();
$wb->clear(0);
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A1", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A2", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A3", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A4", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A5", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A6", "Category 1"));
$series = $chart->getChartData()->getSeries()->add(ChartType::BoxAndWhisker);
$series->setQuartileMethod(QuartileMethodType::Exclusive);
$series->setShowMeanLine(true);
$series->setShowMeanMarkers(true);
$series->setShowInnerPoints(true);
$series->setShowOutlierPoints(true);
$series->getDataPoints()->addDataPointForBoxAndWhiskerSeries($wb->getCell(0, "B1", 15));
$series->getDataPoints()->addDataPointForBoxAndWhiskerSeries($wb->getCell(0, "B2", 41));
$series->getDataPoints()->addDataPointForBoxAndWhiskerSeries($wb->getCell(0, "B3", 16));
$series->getDataPoints()->addDataPointForBoxAndWhiskerSeries($wb->getCell(0, "B4", 10));
$series->getDataPoints()->addDataPointForBoxAndWhiskerSeries($wb->getCell(0, "B5", 23));
$series->getDataPoints()->addDataPointForBoxAndWhiskerSeries($wb->getCell(0, "B6", 16));
$pres->save("BoxAndWhisker.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
إنشاء مخططات قمع
الخطوات: إنشاء مخطط قمع | الخطوات: إنشاء مخطط PowerPoint قمع | الخطوات: إنشاء مخطط عرض تقديمي PowerPoint قمع
- إنشاء كائن من الفئة Presentation .
- الحصول على مرجع الشريحة من خلال فهرسها.
- إضافة مخطط ببيانات افتراضية مع النوع المطلوب (ChartType.Funnel).
- كتابة العرض التقديمي المعدل إلى ملف PPTX.
هذا الكود PHP يوضح كيفية إنشاء مخطط قمع:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Funnel, 50, 50, 500, 400);
$chart->getChartData()->getCategories()->clear();
$chart->getChartData()->getSeries()->clear();
$wb = $chart->getChartData()->getChartDataWorkbook();
$wb->clear(0);
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A1", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A2", "Category 2"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A3", "Category 3"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A4", "Category 4"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A5", "Category 5"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A6", "Category 6"));
$series = $chart->getChartData()->getSeries()->add(ChartType::Funnel);
$series->getDataPoints()->addDataPointForFunnelSeries($wb->getCell(0, "B1", 50));
$series->getDataPoints()->addDataPointForFunnelSeries($wb->getCell(0, "B2", 100));
$series->getDataPoints()->addDataPointForFunnelSeries($wb->getCell(0, "B3", 200));
$series->getDataPoints()->addDataPointForFunnelSeries($wb->getCell(0, "B4", 300));
$series->getDataPoints()->addDataPointForFunnelSeries($wb->getCell(0, "B5", 400));
$series->getDataPoints()->addDataPointForFunnelSeries($wb->getCell(0, "B6", 500));
$pres->save("Funnel.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
إنشاء مخططات إشعاع شمسية
الخطوات: إنشاء مخطط إشعاع شمسية | الخطوات: إنشاء مخطط PowerPoint إشعاع شمسية | الخطوات: إنشاء مخطط عرض تقديمي PowerPoint إشعاع شمسية
- إنشاء كائن من الفئة Presentation .
- الحصول على مرجع الشريحة من خلال فهرسها.
- إضافة مخطط ببيانات افتراضية مع النوع المطلوب (في هذه الحالة، ChartType.sunburst).
- كتابة العرض التقديمي المعدل إلى ملف PPTX.
هذا الكود PHP يوضح كيفية إنشاء مخطط إشعاع شمسية:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Sunburst, 50, 50, 500, 400);
$chart->getChartData()->getCategories()->clear();
$chart->getChartData()->getSeries()->clear();
$wb = $chart->getChartData()->getChartDataWorkbook();
$wb->clear(0);
# الفرع 1
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C1", "Leaf1"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem1");
$leaf->getGroupingLevels()->setGroupingItem(2, "Branch1");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C2", "Leaf2"));
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C3", "Leaf3"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem2");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C4", "Leaf4"));
# الفرع 2
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C5", "Leaf5"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem3");
$leaf->getGroupingLevels()->setGroupingItem(2, "Branch2");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C6", "Leaf6"));
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C7", "Leaf7"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem4");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C8", "Leaf8"));
$series = $chart->getChartData()->getSeries()->add(ChartType::Sunburst);
$series->getLabels()->getDefaultDataLabelFormat()->setShowCategoryName(true);
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D1", 4));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D2", 5));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D3", 3));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D4", 6));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D5", 9));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D6", 9));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D7", 4));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D8", 3));
$pres->save("Sunburst.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
إنشاء مخططات مدرج تكراري
الخطوات: إنشاء مخطط مدرج تكراري | الخطوات: إنشاء مخطط PowerPoint مدرج تكراري | الخطوات: إنشاء مخطط عرض تقديمي PowerPoint مدرج تكراري
- إنشاء كائن من الفئة Presentation .
- الحصول على مرجع الشريحة من خلال فهرسها.
- إضافة مخطط ببيانات افتراضية مع النوع المطلوب (ChartType.Histogram).
- الوصول إلى ChartDataWorkbook.
- مسح السلاسل والفئات الافتراضية.
- إضافة سلاسل وفئات جديدة.
- كتابة العرض التقديمي المعدل إلى ملف PPTX.
هذا الكود PHP يوضح كيفية إنشاء مخطط مدرج تكراري:
$pres = new Presentation();
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Histogram, 50, 50, 500, 400);
$chart->getChartData()->getCategories()->clear();
$chart->getChartData()->getSeries()->clear();
$wb = $chart->getChartData()->getChartDataWorkbook();
$wb->clear(0);
$series = $chart->getChartData()->getSeries()->add(ChartType::Histogram);
$series->getDataPoints()->addDataPointForHistogramSeries($wb->getCell(0, "A1", 15));
$series->getDataPoints()->addDataPointForHistogramSeries($wb->getCell(0, "A2", -41));
$series->getDataPoints()->addDataPointForHistogramSeries($wb->getCell(0, "A3", 16));
$series->getDataPoints()->addDataPointForHistogramSeries($wb->getCell(0, "A4", 10));
$series->getDataPoints()->addDataPointForHistogramSeries($wb->getCell(0, "A5", -23));
$series->getDataPoints()->addDataPointForHistogramSeries($wb->getCell(0, "A6", 16));
$chart->getAxes()->getHorizontalAxis()->setAggregationType(AxisAggregationType::Automatic);
إنشاء مخططات رادارية
الخطوات: إنشاء مخطط راداري | الخطوات: إنشاء مخطط PowerPoint راداري | الخطوات: إنشاء مخطط عرض تقديمي PowerPoint راداري
- إنشاء كائن من الفئة Presentation .
- الحصول على مرجع الشريحة من خلال فهرسها.
- إضافة مخطط ببيانات معينة وتحديد نوع المخطط المفضل (
ChartType::Radarفي هذه الحالة). - كتابة العرض التقديمي المعدل إلى ملف PPTX.
هذا الكود PHP يوضح كيفية إنشاء مخطط راداري:
$pres = new Presentation();
try {
$pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Radar, 20, 20, 400, 300);
$pres->save("Radar-chart.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
إنشاء مخططات متعددة الفئات
الخطوات: إنشاء مخطط متعدد الفئات | الخطوات: إنشاء مخطط PowerPoint متعدد الفئات | الخطوات: إنشاء مخطط عرض تقديمي PowerPoint متعدد الفئات
- إنشاء كائن من الفئة Presentation .
- الحصول على مرجع الشريحة من خلال فهرسها.
- إضافة مخطط ببيانات افتراضية مع النوع المطلوب (ChartType.ClusteredColumn).
- الوصول إلى ChartDataWorkbook.
- مسح السلاسل والفئات الافتراضية.
- إضافة سلاسل وفئات جديدة.
- إضافة بيانات مخطط جديدة لسلسلة المخطط.
- كتابة العرض التقديمي المعدل إلى ملف PPTX.
هذا الكود PHP يوضح كيفية إنشاء مخطط متعدد الفئات:
$pres = new Presentation();
try {
$ch = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 100, 100, 600, 450);
$ch->getChartData()->getSeries()->clear();
$ch->getChartData()->getCategories()->clear();
$fact = $ch->getChartData()->getChartDataWorkbook();
$fact->clear(0);
$defaultWorksheetIndex = 0;
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c2", "A"));
$category->getGroupingLevels()->setGroupingItem(1, "Group1");
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c3", "B"));
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c4", "C"));
$category->getGroupingLevels()->setGroupingItem(1, "Group2");
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c5", "D"));
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c6", "E"));
$category->getGroupingLevels()->setGroupingItem(1, "Group3");
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c7", "F"));
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c8", "G"));
$category->getGroupingLevels()->setGroupingItem(1, "Group4");
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c9", "H"));
# إضافة سلسلة
$series = $ch->getChartData()->getSeries()->add($fact->getCell(0, "D1", "Series 1"), ChartType::ClusteredColumn);
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D2", 10));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D3", 20));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D4", 30));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D5", 40));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D6", 50));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D7", 60));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D8", 70));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D9", 80));
# حفظ العرض التقديمي مع المخطط
$pres->save("AsposeChart_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
إنشاء مخططات خريطة
مخطط الخريطة هو تمثيل مرئي لمنطقة تحتوي على بيانات. تُستخدم مخططات الخريطة للمقارنة بين البيانات أو القيم عبر المناطق الجغرافية.
الخطوات: إنشاء مخطط خريطة | الخطوات: إنشاء مخطط PowerPoint خريطة | الخطوات: إنشاء مخطط عرض تقديمي PowerPoint خريطة
هذا الكود PHP يوضح كيفية إنشاء مخطط خريطة:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Map, 50, 50, 500, 400);
$pres->save("mapChart.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
إنشاء مخططات مركبة
مخطط مركب (أو مخطط مزيج) يجمع بين نوعين أو أكثر من المخططات في رسم بياني واحد. يتيح لك هذا المخطط إبراز أو مقارنة أو فحص الاختلافات بين مجموعتي بيانات أو أكثر، مما يساعدك على تحديد العلاقات بينها.

يعرض الكود PHP التالي كيفية إنشاء المخطط المركب الموضح أعلاه في عرض تقديمي PowerPoint:
function createComboChart() {
$presentation = new Presentation();
$slide = $presentation->getSlides()->get_Item(0);
try {
$chart = createChartWithFirstSeries($slide);
addSecondSeriesToChart($chart);
addThirdSeriesToChart($chart);
setPrimaryAxesFormat($chart);
setSecondaryAxesFormat($chart);
$presentation->save("combo-chart.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
}
function createChartWithFirstSeries($slide) {
$chart = $slide->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 600, 400);
// تعيين عنوان المخطط.
$chart->setTitle(true);
$chart->getChartTitle()->addTextFrameForOverriding("Chart Title");
$chart->getChartTitle()->setOverlay(false);
$titleParagraph = $chart->getChartTitle()->getTextFrameForOverriding()->getParagraphs()->get_Item(0);
$titleFormat = $titleParagraph->getParagraphFormat()->getDefaultPortionFormat();
$titleFormat->setFontBold(NullableBool::False);
$titleFormat->setFontHeight(18);
// تعيين أسطورة المخطط.
$chart->getLegend()->setPosition(LegendPositionType::Bottom);
$chart->getLegend()->getTextFormat()->getPortionFormat()->setFontHeight(12);
// حذف السلاسل والفئات التي تم إنشاؤها افتراضيًا.
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
$worksheetIndex = 0;
$workbook = $chart->getChartData()->getChartDataWorkbook();
// إضافة فئات جديدة.
$chart->getChartData()->getCategories()->add($workbook->getCell($worksheetIndex, 1, 0, "Category 1"));
$chart->getChartData()->getCategories()->add($workbook->getCell($worksheetIndex, 2, 0, "Category 2"));
$chart->getChartData()->getCategories()->add($workbook->getCell($worksheetIndex, 3, 0, "Category 3"));
$chart->getChartData()->getCategories()->add($workbook->getCell($worksheetIndex, 4, 0, "Category 4"));
// إضافة السلسلة الأولى.
$seriesNameCell = $workbook->getCell($worksheetIndex, 0, 1, "Series 1");
$series = $chart->getChartData()->getSeries()->add($seriesNameCell, $chart->getType());
$series->getParentSeriesGroup()->setOverlap(-25);
$series->getParentSeriesGroup()->setGapWidth(220);
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 1, 1, 4.3));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 2, 1, 2.5));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 3, 1, 3.5));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 4, 1, 4.5));
return $chart;
}
function addSecondSeriesToChart($chart) {
$workbook = $chart->getChartData()->getChartDataWorkbook();
$worksheetIndex = 0;
$seriesNameCell = $workbook->getCell($worksheetIndex, 0, 2, "Series 2");
$series = $chart->getChartData()->getSeries()->add($seriesNameCell, ChartType::ClusteredColumn);
$series->getParentSeriesGroup()->setOverlap(-25);
$series->getParentSeriesGroup()->setGapWidth(220);
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 1, 2, 2.4));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 2, 2, 4.4));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 3, 2, 1.8));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 4, 2, 2.8));
}
function addThirdSeriesToChart($chart) {
$workbook = $chart->getChartData()->getChartDataWorkbook();
$worksheetIndex = 0;
$seriesNameCell = $workbook->getCell($worksheetIndex, 0, 3, "Series 3");
$series = $chart->getChartData()->getSeries()->add($seriesNameCell, ChartType::Line);
$series->getDataPoints()->addDataPointForLineSeries($workbook->getCell($worksheetIndex, 1, 3, 2.0));
$series->getDataPoints()->addDataPointForLineSeries($workbook->getCell($worksheetIndex, 2, 3, 2.0));
$series->getDataPoints()->addDataPointForLineSeries($workbook->getCell($worksheetIndex, 3, 3, 3.0));
$series->getDataPoints()->addDataPointForLineSeries($workbook->getCell($worksheetIndex, 4, 3, 5.0));
$series->setPlotOnSecondAxis(true);
}
function setPrimaryAxesFormat($chart) {
// تعيين المحور الأفقي.
$horizontalAxis = $chart->getAxes()->getHorizontalAxis();
$horizontalAxis->getTextFormat()->getPortionFormat()->setFontHeight(12);
$horizontalAxis->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
setAxisTitle($horizontalAxis, "X Axis");
// تعيين المحور الرأسي.
$verticalAxis = $chart->getAxes()->getVerticalAxis();
$verticalAxis->getTextFormat()->getPortionFormat()->setFontHeight(12);
$verticalAxis->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
setAxisTitle($verticalAxis, "Y Axis 1");
// تعيين لون خطوط الشبكة الرأسية الرئيسية.
$majorGridLinesFormat = $verticalAxis->getMajorGridLinesFormat()->getLine()->getFillFormat();
$majorGridLinesFormat->setFillType(FillType::Solid);
$majorGridLinesFormat->getSolidFillColor()->setColor(new java("java.awt.Color", 217, 217, 217));
}
function setSecondaryAxesFormat($chart) {
// تعيين المحور الأفقي الثانوي.
$secondaryHorizontalAxis = $chart->getAxes()->getSecondaryHorizontalAxis();
$secondaryHorizontalAxis->setPosition(AxisPositionType::Bottom);
$secondaryHorizontalAxis->setCrossType(CrossesType::Maximum);
$secondaryHorizontalAxis->setVisible(false);
$secondaryHorizontalAxis->getMajorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
$secondaryHorizontalAxis->getMinorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
// تعيين المحور الرأسي الثانوي.
$secondaryVerticalAxis = $chart->getAxes()->getSecondaryVerticalAxis();
$secondaryVerticalAxis->setPosition(AxisPositionType::Right);
$secondaryVerticalAxis->getTextFormat()->getPortionFormat()->setFontHeight(12);
$secondaryVerticalAxis->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
$secondaryVerticalAxis->getMajorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
$secondaryVerticalAxis->getMinorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
setAxisTitle($secondaryVerticalAxis, "Y Axis 2");
}
function setAxisTitle($axis, $axisTitle) {
$axis->setTitle(true);
$axis->getTitle()->setOverlay(false);
$titleParagraph = $axis->getTitle()->addTextFrameForOverriding($axisTitle)->getParagraphs()->get_Item(0);
$titleFormat = $titleParagraph->getParagraphFormat()->getDefaultPortionFormat();
$titleFormat->setFontBold(NullableBool::False);
$titleFormat->setFontHeight(12);
}
تحديث المخططات
الخطوات: تحديث مخطط PowerPoint | الخطوات: تحديث مخطط عرض تقديمي | الخطوات: تحديث مخطط عرض تقديمي PowerPoint
- إنشاء كائن من الفئة Presentation التي تمثل العرض التقديمي الذي يحتوي على المخطط الذي تريد تحديثه.
- الحصول على مرجع شريحة باستخدام فهرسها.
- تمرير جميع الأشكال للعثور على المخطط المطلوب.
- الوصول إلى ورقة عمل بيانات المخطط.
- تعديل بيانات سلسلة المخطط بتغيير قيم السلسلة.
- إضافة سلسلة جديدة وتعبئة البيانات فيها.
- كتابة العرض التقديمي المعدل كملف PPTX.
هذا الكود PHP يوضح كيفية تحديث مخطط:
$pres = new Presentation();
try {
# الوصول إلى الشريحة الأولى
$sld = $pres->getSlides()->get_Item(0);
# الحصول على المخطط بالبيانات الافتراضية
$chart = $sld->getShapes()->get_Item(0);
# تعيين فهرس ورقة بيانات المخطط
$defaultWorksheetIndex = 0;
# الحصول على ورقة عمل بيانات المخطط
$fact = $chart->getChartData()->getChartDataWorkbook();
# تغيير اسم فئة المخطط
$fact->getCell($defaultWorksheetIndex, 1, 0, "Modified Category 1");
$fact->getCell($defaultWorksheetIndex, 2, 0, "Modified Category 2");
# أخذ السلسلة الأولى للمخطط
$series = $chart->getChartData()->getSeries()->get_Item(0);
# الآن يتم تحديث بيانات السلسلة
$fact->getCell($defaultWorksheetIndex, 0, 1, "New_Series1"); // تعديل اسم السلسلة
$series->getDataPoints()->get_Item(0)->getValue()->setData(90);
$series->getDataPoints()->get_Item(1)->getValue()->setData(123);
$series->getDataPoints()->get_Item(2)->getValue()->setData(44);
# أخذ السلسلة الثانية للمخطط
$series = $chart->getChartData()->getSeries()->get_Item(1);
# الآن يتم تحديث بيانات السلسلة
$fact->getCell($defaultWorksheetIndex, 0, 2, "New_Series2"); // تعديل اسم السلسلة
$series->getDataPoints()->get_Item(0)->getValue()->setData(23);
$series->getDataPoints()->get_Item(1)->getValue()->setData(67);
$series->getDataPoints()->get_Item(2)->getValue()->setData(99);
# الآن، إضافة سلسلة جديدة
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 3, "Series 3"), $chart->getType());
# أخذ السلسلة الثالثة للمخطط
$series = $chart->getChartData()->getSeries()->get_Item(2);
# الآن يتم تعبئة بيانات السلسلة
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 1, 3, 20));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 2, 3, 50));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 3, 3, 30));
$chart->setType(ChartType::ClusteredCylinder);
# حفظ العرض التقديمي مع المخطط
$pres->save("AsposeChartModified_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
ضبط نطاق البيانات لمخطط
لتعيين نطاق البيانات لمخطط، قم بما يلي:
- إنشاء كائن من الفئة Presentation التي تمثل العرض التقديمي الذي يحتوي على المخطط.
- الحصول على مرجع شريحة من خلال فهرسها.
- تمرير جميع الأشكال للعثور على المخطط المطلوب.
- الوصول إلى بيانات المخطط وتحديد النطاق.
- حفظ العرض التقديمي المعدل كملف PPTX.
هذا الكود PHP يوضح كيفية ضبط نطاق البيانات لمخطط:
$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$chart = $slide->getShapes()->get_Item(0);
$chart->getChartData()->setRange("Sheet1!A1:B4");
$pres->save("SetDataRange_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
استخدام العلامات الافتراضية في المخططات
عند استخدام علامة افتراضية في المخططات، يحصل كل سلسلة مخطط على رمز علامة افتراضي مختلف تلقائيًا.
هذا الكود PHP يوضح كيفية تعيين علامة سلسلة مخطط تلقائيًا:
$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$chart = $slide->getShapes()->addChart(ChartType::LineWithMarkers, 10, 10, 400, 400);
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
$fact = $chart->getChartData()->getChartDataWorkbook();
$chart->getChartData()->getSeries()->add($fact->getCell(0, 0, 1, "Series 1"), $chart->getType());
$series = $chart->getChartData()->getSeries()->get_Item(0);
$chart->getChartData()->getCategories()->add($fact->getCell(0, 1, 0, "C1"));
$series->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 1, 1, 24));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 2, 0, "C2"));
$series->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 2, 1, 23));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 3, 0, "C3"));
$series->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 3, 1, -10));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 4, 0, "C4"));
$series->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 4, 1, null));
$chart->getChartData()->getSeries()->add($fact->getCell(0, 0, 2, "Series 2"), $chart->getType());
# أخذ السلسلة الثانية للمخطط
$series2 = $chart->getChartData()->getSeries()->get_Item(1);
# الآن تعبئة بيانات السلسلة
$series2->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 1, 2, 30));
$series2->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 2, 2, 10));
$series2->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 3, 2, 60));
$series2->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 4, 2, 40));
$chart->setLegend(true);
$chart->getLegend()->setOverlay(false);
$pres->save("DefaultMarkersInChart.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
الأسئلة الشائعة
ما هي أنواع المخططات التي يدعمها Aspose.Slides؟
يدعم Aspose.Slides مجموعة واسعة من أنواع المخططات، بما في ذلك المخطط الشريطي، الخطي، الدائري، المساحي، النقطي، المدرج التكراري، الراداري، والعديد غيرها. يمنحك هذا المرونة لاختيار النوع الأنسب لتصور بياناتك.
كيف يمكنني إضافة مخطط جديد إلى شريحة؟
لإضافة مخطط، يجب أولاً إنشاء كائن من فئة Presentation، استرجاع الشريحة المطلوبة باستخدام فهرسها، ثم استدعاء الطريقة لإضافة مخطط مع تحديد نوع المخطط والبيانات الأولية. يدمج هذا العملية المخطط مباشرة في عرضك التقديمي.
كيف يمكنني تحديث البيانات المعروضة في مخطط؟
يمكنك تحديث بيانات المخطط بالوصول إلى دفتر عمل البيانات الخاص به (ChartDataWorkbook)، مسح أي سلاسل وفئات افتراضية، ثم إضافة بياناتك المخصصة. يتيح لك ذلك تحديث المخطط لعرض أحدث البيانات.
هل يمكن تخصيص مظهر المخطط؟
نعم، يوفر Aspose.Slides خيارات تخصيص واسعة. يمكنك تعديل الألوان، الخطوط، التسميات، الأساطير، وعناصر التنسيق لتكييف مظهر المخطط مع متطلبات التصميم الخاصة بك.