كيفية العمل مع المخططات في .NET

كيفية العمل مع المخططات في .NET

يوضح هذا الدليل كيفية إدراج مخطط Word أصلي والتحكم في مظهره باستخدام Aspose.Words FOSS لـ .NET — إخفاء الأسطورة والمحاور، تثبيت مقياس محور القيم، ثم اختيار نوع مخطط مختلف وتنسيق تسميات البيانات والنقاط الفردية. Aspose.Words FOSS لـ .NET متاح عبر NuGet أو عن طريق البناء من المصدر.

دليل خطوة بخطوة

الخطوة 1: الحصول على المكتبة

استنساخ المستودع وبناء Aspose.Words.sln في وضع الإصدار، ثم أضف إشارة مشروع إلى Aspose.Words.csproj من مشروعك الخاص .NET، كما هو موضح في الـ دليل التثبيت.


الخطوة 2: إدراج مخطط وتبسيط مظهره

DocumentBuilder.InsertChart(chartType, width, height) يُدرج شكل مخطط عند المؤشر ويعيد الـ Shape المحتوي؛ خاصية Chart الخاصة به هي كائن Chart الذي تقوم بتكوينه، مع AxisX وAxisY وLegend وTitle كالكائنات الفرعية الرئيسية له. أنواع المخططات موجودة في مساحة الاسم Aspose.Words.Drawing.Charts إلى جانب مساحة الاسم الأساسية Aspose.Words. مخطط ChartType.Bar بسيط وجاهز للعرض على Document جديد غالبًا ما يعني ضبط Legend.Position إلى LegendPosition.None، وضبط Hidden وHasMajorGridlines على AxisY وAxisX، وتعيين Title.Show إلى false، مسح العنصر النائب ChartSeriesCollection باستخدام Series.Clear() قبل استدعاء Series.Add(seriesName, categories, values)، تثبيت AxisY.Scaling.Maximum إلى AxisBound ثابت بدلاً من السماح له بالتحجيم التلقائي، ثم كتابة النتيجة باستخدام Document.Save. المثال الكامل — Document، DocumentBuilder، Chart، AxisX، AxisY، Legend، Title، ChartSeriesCollection، AxisBound، وDocument.Save — يبدو هكذا:

using Aspose.Words;
using Aspose.Words.Drawing.Charts;

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.InsertChart(ChartType.Bar, 432, 252);
Chart chart = shape.Chart;
chart.Legend.Position = LegendPosition.None;

ChartSeriesCollection seriesColl = chart.Series;
chart.AxisY.Hidden = true;
chart.AxisY.HasMajorGridlines = false;
chart.AxisX.Hidden = true;
chart.Title.Show = false;

seriesColl.Clear();
chart.AxisY.Scaling.Maximum = new AxisBound(100);

string[] categories = new string[] { "AW Category 1" };
seriesColl.Add("AW Series 1", categories, new double[] { 30 });

doc.Save("chart.docx");

يقوم هذا بإنشاء Document، يُدرج مخطط ChartType.Bar، يضبط Chart.Legend.Position إلى LegendPosition.None لإخفاء المفتاح، يضبط Hidden = true و HasMajorGridlines = false على chart.AxisY و Hidden = true على chart.AxisX، يضبط chart.Title.Show = false، يمسح سلسلة العناصر النائبة باستخدام seriesColl.Clear()، يثبت محور القيم إلى حد أقصى 100 عبر chart.AxisY.Scaling.Maximum = new AxisBound(100)، يضيف سلسلة حقيقية واحدة باستخدام seriesColl.Add(seriesName, categories, values)، ويكتب النتيجة باستخدام Document.Save.


الخطوة 3: اختر نوع مخطط مختلف

ChartType تغطي عائلات المخططات القياسية في Word — Line، Bar، Column (بالإضافة إلى المتغيرات Stacked، PercentStacked، و3D)، Pie، PieOfPie، Doughnut، Area، Scatter، Bubble، Radar، Stock، Surface، وأنواع Word 2016 Treemap، Sunburst، Histogram، Pareto، BoxAndWhisker، وWaterfall. مرّر القيمة التي تريدها كمعامل chartType إلى InsertChart — لا يوجد عضو يغيّر نوع مخطط موجود بعد الإدراج، لذا اختر النوع الصحيح مسبقًا أو استبدل الشكل.


الخطوة 4: إضافة وتنسيق تسميات البيانات

اضبط series.HasDataLabels = true قبل تكوين series.DataLabels (وهو ChartDataLabelCollection) — لا تؤثر مفاتيح العرض الخاصة به بشكل مرئي عندما تكون التسميات مُعطلة. ShowValue، ShowCategoryName، وShowPercentage تتحكم في أي أجزاء من المعلومات تظهر، وPosition يضعها بالنسبة إلى نقطة البيانات.


الخطوة 5: تنسيق نقطة بيانات فردية

افهرس إلى DataPoints لسلسلة (وهو ChartDataPointCollection) للوصول إلى ChartDataPoint واحد وتعيين Format أو Marker أو Explosion أو InvertIfNegative بشكل مستقل عن بقية السلسلة. بهذه الطريقة يمكنك إبراز شريط أو شريحة أو علامة واحدة دون إعادة تنسيق السلسلة بأكملها.

المشكلات الشائعة والحلول

المخطط الجديد يظهر بيانات تجريبية غير متوقعة. InsertChart يملأ المخطط بسلسلة بديلة. استدعِ chart.Series.Clear() قبل إضافة سلسلتك الخاصة.

Hiding AxisY لا يزيل خطوط الشبكة. Hidden يخفى خط المحور والتسميات؛ خطوط الشبكة هي تبديل منفصل. اضبط HasMajorGridlines = false (و HasMinorGridlines = false إذا كانت خطوط الشبكة الصغرى مرئية أيضًا).

لا تظهر تسميات البيانات بعد ضبط ShowValue = true. HasDataLabels لم يتم ضبطه على السلسلة أولاً. اضبط series.HasDataLabels = true، ثم قم بتكوين series.DataLabels.

Scaling.Maximum يبدو أنه لا يُطبّق. تأكد أنك تقوم بضبطه على كائن المحور الصحيح (chart.AxisY للمحور القيمي في معظم أنواع المخططات) وأنه لا يعيد أي مسار شفرة سابق الإعدادات Scaling العودة إلى الإعداد الافتراضي AxisBound().

الأسئلة المتكررة

كيف يمكنني إخفاء وسيلة إيضاح المخطط؟

اضبط chart.Legend.Position = LegendPosition.None.

كيف يمكنني تثبيت محور إلى نطاق محدد بدلاً من التحجيم التلقائي؟

قم بضبط AxisScaling.Minimum و/أو AxisScaling.Maximum (كلاهما قيم AxisBound) على chart.AxisX.Scaling أو chart.AxisY.Scaling.

كيف يمكنني إخفاء عنوان المخطط دون حذفه؟

قم بضبط chart.Title.Show = false. يبقى كائن ChartTitle وText الخاص به؛ يتم فقط إخفاء التسمية الظاهرة.

ما هي أنواع المخططات المتاحة؟

ChartType يسرد العائلات الكلاسيكية (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, بالإضافة إلى المتغيرات المتكدسة وثلاثية الأبعاد) إلى جانب أنواع Word 2016 (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall).

هل يمكنني تنسيق نقطة بيانات واحدة بشكل مختلف عن باقي السلسلة؟

نعم — قم بالوصول إلى ChartSeries.DataPoints واضبط Format أو Marker أو Explosion الخاصة بـ ChartDataPoint بشكل مستقل.

انظر أيضاً

 العربية