تخصيص جداول بيانات المخططات في العروض التقديمية باستخدام C++
نظرة عامة
تمكّن Aspose.Slides للغة C++ من عرض جدول بيانات المخطط وتخصيص تنسيق النص، والحدود، ومفاتيح الأسطورة. يشرح هذا المقال كيفية تمكين الجدول، تنسيق نصه، التحكم في كل نوع من الحدود، وإظهار أو إخفاء مفاتيح الأسطورة. تحفظ الأمثلة المخططات المكوّنة في ملفات PPTX.
تعيين خصائص الخط
لعرض جدول بيانات المخطط، مرّر true إلى IChart::set_HasDataTable. استخدم IChart::get_ChartDataTable للوصول إلى الجدول وتكوين تنسيق النص.
- تحميل العرض التقديمي باستخدام الفئة Presentation.
- إضافة مخطط عمودي مجمع إلى الشريحة الأولى.
- تمكين جدول بيانات المخطط.
- تمكين النص الغامق باستخدام IBasePortionFormat::set_FontBold ومرّر
20إلى IBasePortionFormat::set_FontHeight للحصول على نص بحجم 20 نقطة. - حفظ العرض التقديمي المعدل.
تتطلب المثال التالي ملف test.pptx في دليل العمل يحتوي على شريحة واحدة على الأقل. يضيف مخططًا ببيانات افتراضية في الموقع (50, 50)، بعرض 600 نقطة وارتفاع 400 نقطة. يحتوي ملف output.pptx المحفوظ على المخطط مع جدول البيانات مفعلاً وإعدادات الخط المحددة مطبقة.
#include <DOM/Chart/ChartType.h>
#include <DOM/Chart/IChartPortionFormat.h>
#include <DOM/Chart/IChartTextFormat.h>
#include <DOM/Chart/IDataTable.h>
#include <DOM/IChart.h>
#include <DOM/IShapeCollection.h>
#include <DOM/ISlide.h>
#include <DOM/NullableBool.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Charts;
using namespace Aspose::Slides::Export;
auto presentation = System::MakeObject<Presentation>(u"test.pptx");
auto slide = presentation->get_Slide(0);
auto chart = slide->get_Shapes()->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 600.0f, 400.0f);
chart->set_HasDataTable(true);
auto portionFormat = chart->get_ChartDataTable()->get_TextFormat()->get_PortionFormat();
portionFormat->set_FontBold(NullableBool::True);
portionFormat->set_FontHeight(20.0f);
presentation->Save(u"output.pptx", SaveFormat::Pptx);
تخصيص حدود جدول البيانات
تمكين الجدول باستخدام IChart::set_HasDataTable والوصول إليه عبر IChart::get_ChartDataTable. يمكنك التحكم في ثلاثة أنواع من الحدود بشكل مستقل:
- IDataTable::set_HasBorderHorizontal يتحكم في حدود الخلايا الأفقية.
- IDataTable::set_HasBorderVertical يتحكم في حدود الخلايا العمودية.
- IDataTable::set_HasBorderOutline يتحكم في الحدود الخارجية للجدول.
مرّر true إلى كل مُحدد لعرض حدوده أو false لإخفائها. ينشئ المثال التالي مخطط عمودي مجمع ببيانات افتراضية، يعرض الحدود الأفقية والحد الخارجي، ويخفي الحدود العمودية. لا يتطلب أي ملف إدخال. يُحدَّد موقع المخطط وحجمه بالنقاط.
#include <DOM/Chart/ChartType.h>
#include <DOM/Chart/IChartPortionFormat.h>
#include <DOM/Chart/IChartTextFormat.h>
#include <DOM/Chart/IDataTable.h>
#include <DOM/IChart.h>
#include <DOM/IShapeCollection.h>
#include <DOM/ISlide.h>
#include <DOM/NullableBool.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Charts;
using namespace Aspose::Slides::Export;
auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
auto chart = slide->get_Shapes()->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 600.0f, 400.0f);
chart->set_HasDataTable(true);
auto dataTable = chart->get_ChartDataTable();
dataTable->set_HasBorderHorizontal(true);
dataTable->set_HasBorderVertical(false);
dataTable->set_HasBorderOutline(true);
presentation->Save(u"data-table-borders.pptx", SaveFormat::Pptx);
المقارنة أدناه تستخدم نفس بيانات المخطط وإعداد مفتاح الأسطورة في جميع الحالات الأربعة. يبدأ الجميع بجميع الحدود مفعلة، وتُعطَّل كل حالة حدوداً واحدة فقط. يتطابق الشكل السفلي الأيسر مع إعدادات الحدود في المثال.

إظهار أو إخفاء مفاتيح الأسطورة
مفاتيح الأسطورة هي علامات ملونة صغيرة بجانب أسماء السلاسل في جدول البيانات. تساعد القراء على ربط كل صف من الجدول بسلسلة المخطط. مرّر true إلى IDataTable::set_ShowLegendKey لإظهار هذه العلامات أو false لإخفائها.
يتم التحكم في الأسطورة المنفصلة للمخطط عبر IChart::set_HasLegend. هذه الإعدادات مستقلة: إخفاء الأسطورة المنفصلة لا يخفى المفاتيح داخل جدول البيانات، وإخفاء مفاتيح الجدول لا يخفى الأسطورة المنفصلة.
ينشئ المثال التالي مخططًا ببيانات افتراضية، يمكّن جدول البيانات، ويُظهر مفاتيح الأسطورة داخله مع إخفاء الأسطورة المنفصلة. جميع حدود الجدول مفعلة صراحة. لا يُطلب أي عرض تقديمي كإدخال. لإخفاء مفاتيح الجدول فقط، مرّر false إلى IDataTable::set_ShowLegendKey.
#include <DOM/Chart/ChartType.h>
#include <DOM/Chart/IChartPortionFormat.h>
#include <DOM/Chart/IChartTextFormat.h>
#include <DOM/Chart/IDataTable.h>
#include <DOM/IChart.h>
#include <DOM/IShapeCollection.h>
#include <DOM/ISlide.h>
#include <DOM/NullableBool.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Charts;
using namespace Aspose::Slides::Export;
auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
auto chart = slide->get_Shapes()->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 600.0f, 400.0f);
chart->set_HasDataTable(true);
chart->set_HasLegend(false);
auto dataTable = chart->get_ChartDataTable();
dataTable->set_HasBorderHorizontal(true);
dataTable->set_HasBorderVertical(true);
dataTable->set_HasBorderOutline(true);
dataTable->set_ShowLegendKey(true);
presentation->Save(u"data-table-legend-keys.pptx", SaveFormat::Pptx);
المقارنة أدناه تُظهر نفس الجدول مع تمكين مفاتيح الأسطورة وإيقافها. تبقى جميع الحدود مفعلة، وتظل الأسطورة المنفصلة للمخطط مخفية في الحالتين.

الأسئلة الشائعة
هل يمكنني إظهار مفاتيح الأسطورة في جدول بيانات المخطط؟
نعم. مرّر true إلى IDataTable::set_ShowLegendKey لعرض مفاتيح الأسطورة أو false لإخفائها.
هل سيُحافظ على جدول البيانات عند تصدير العرض التقديمي إلى PDF أو HTML أو صور؟
نعم. تقوم Aspose.Slides بتصيير المخطط وجدول البيانات المعروض كجزء من الشريحة عند التصدير إلى PDF، HTML، أو الصور.
هل يمكنني العمل مع جداول البيانات في المخططات التي تم تحميلها من قالب؟
نعم. للمخطط المحمَّل من عرض تقديمي أو قالب موجود، استخدم IChart::get_HasDataTable للتحقق مما إذا كان جدول البيانات معروضًا وIChart::set_HasDataTable لتغيير رؤيته.
كيف يمكنني العثور على المخططات التي لديها جدول بيانات مفعَّل؟
قم بالتكرار عبر الأشكال في كل شريحة، حدِّد المخططات، وتحقق من نتيجة IChart::get_HasDataTable. قيمة true تشير إلى أن جدول البيانات مفعَّل.