العمل مع المخططات

العمل مع المخططات

العمل مع المخططات

Aspose.Words FOSS لـ .NET يمكنه إدراج مخططات Word الأصلية — نفس المخططات DrawingML التي ينشئها Word نفسه — كشكل في طبقة الرسم. DocumentBuilder.InsertChart ينشئ الشكل ويعيده؛ خاصية Chart للشكل تكشف عن السلاسل والمحاور والوسيلة التوضيحية والتنسيق. يغطي هذا الدليل إنشاء مخطط، اختيار نوع المخطط، العمل مع السلاسل ونقاط البيانات، المحاور وخطوط الشبكة، وتنسيق عناصر المخطط.


إنشاء مخطط

استدعِ DocumentBuilder.InsertChart(chartType, width, height) لإدراج شكل مخطط عند المؤشر والحصول على Shape الحاوية. خاصية Chart الخاصة به هي كائن Chart الذي تقوم بتكوينه. يأتي المخطط المُدرج حديثًا مع سلاسل تجريبية placeholder، لذا قم بمسح Chart.Series قبل إضافة بيانات حقيقية باستخدام ChartSeriesCollection.Add(seriesName, categories, values):

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

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

Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;

// Delete default generated series.
chart.Series.Clear();

string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });

doc.Save("chart.docx");

يبني هذا المثال Document، يستخدم DocumentBuilder.InsertChart(ChartType.Line, 432, 252) لإدراج شكل مخطط خطي، يقرأ shape.Chart للحصول على كائن Chart، يستدعي chart.Series.Clear() لإزالة سلسلة placeholder، يضيف سلسلة حقيقية واحدة باستخدام chart.Series.Add(seriesName, categories, values)، ويكتب النتيجة باستخدام Document.Save.


أنواع المخططات

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؛ لا توجد طريقة لتغيير نوع مخطط موجود بعد الإدراج سوى استبدال الشكل.


السلاسل ونقاط البيانات

Chart.Series هو ChartSeriesCollection من كائنات ChartSeries. بخلاف التحميل الزائد Add(seriesName, categories, values) المستخدم أعلاه، فإن ChartSeriesCollection يحتوي أيضًا على تحميلات زائدة لأزواج قيم X/Y، والتواريخ، وأحجام الفقاعات، بالإضافة إلى Insert، Remove(index)، وClear(). كل ChartSeries يكشف عن DataPoints (وهو ChartDataPointCollection) لتنسيق كل نقطة — Format، Marker، Explosion، وInvertIfNegative — وHasDataLabels / DataLabels لتفعيل وتكوين ChartDataLabelCollection (ShowValue، ShowCategoryName، ShowPercentage، Position).


المحاور وخطوط الشبكة

Chart.AxisX، AxisY، وAxisZ هي كائنات ChartAxis (مع Chart.Axes كـ ChartAxisCollection لتكرار جميعها). كل محور يحتوي على HasMajorGridlines / HasMinorGridlines، MajorUnit / MinorUnit (مع أعلام *IsAuto المطابقة)، Crosses / CrossesAt، CategoryType، وTickLabels كائن (AxisTickLabels) لخط التسمية والاتجاه. ChartAxis.Title (ChartAxisTitle) يحدد نص تسمية المحور عبر خصائصه Text وShow.


وسيلة الإيضاح، العنوان، وجدول البيانات

Chart.Title (ChartTitle) يحدد التسمية العامة للمخطط — Text، Show، وFont. Chart.Legend (ChartLegend) يتحكم فيما إذا كانت وسيلة الإيضاح تظهر وأين تظهر عبر Position (قيمة LegendPosition مثل Bottom، Right، أو Top) ويكشف عن LegendEntries الفردية. Chart.DataTable (ChartDataTable) يمكنه عرض قيم السلاسل الأساسية كجدول أسفل منطقة الرسم، مع Show، HasLegendKeys، ومفاتيح التبديل للحدود.


تنسيق عناصر المخطط

معظم عناصر المخطط — السلاسل، نقاط البيانات، المحاور، العنوان، ووسيلة الإيضاح — تكشف عن خاصية Format من النوع ChartFormat، والتي بدورها تكشف عن Fill وStroke لألوان ذلك العنصر، بالإضافة إلى ShapeType (ChartShapeType) لأشكال علامات نقاط البيانات. ChartFormat.SetDefaultFill() يعيد العنصر إلى مظهره الافتراضي المستند إلى السمة.


نصائح وأفضل الممارسات

  • دائمًا قم بمسح أو استبدال سلسلة العنصر النائب (chart.Series.Clear()) قبل إضافة البيانات الحقيقية — يتم إدراج مخطط جديد مع بيانات نموذجية مضمَّنة بالفعل.
  • استخدم التحميلات ChartSeriesCollection.Add التي تتطابق مع شكل بياناتك (الفئات، أزواج X/Y، التواريخ، أو أحجام الفقاعات) بدلاً من إجبار كل شيء عبر أزواج الفئة/القيمة.
  • قم بتعيين HasDataLabels = true على السلسلة قبل تكوين مجموعة DataLabels الخاصة بها — لا تؤثر خصائص عرض المجموعة بشكل مرئي أثناء إيقاف تشغيل التسميات.
  • اقرأ Chart.ChartSpace أو تحقق من ChartType المحدد قبل الاعتماد على سلوك خطوط الشبكة أو المحور الذي يختلف بين المخططات الكلاسيكية ومخططات نمط Word-2016.
  • يفضَّل استخدام ChartFormat.SetDefaultFill() على مسح كل خاصية تعبئة يدويًا عندما تريد إعادة ضبط مظهر العنصر.

مشكلات شائعة

المشكلةالسببالإصلاح
المخطط الجديد يعرض بيانات تجريبية غير متوقعةInsertChart يملأ المخطط بسلسلة مؤقتةاستدعِ chart.Series.Clear() قبل إضافة السلسلة الخاصة بك
لا تظهر تسميات البياناتHasDataLabels لم يتم تعيينه على السلسلة قبل تكوين DataLabelsقم بتعيين series.HasDataLabels = true، ثم قم بتكوين ShowValue/ShowCategoryName على series.DataLabels
خطوط الشبكة لا تظهر على محور القيميكون HasMajorGridlines/HasMinorGridlines افتراضيًا على false لهذا المحوراضبط chart.AxisY.HasMajorGridlines = true (و HasMinorGridlines إذا لزم الأمر)
لا تظهر وسيلة الإيضاحتم تعيين Chart.Legend.Position إلى LegendPosition.Noneقم بتعيين Position إلى Bottom أو Right أو Top أو Left أو TopRight

FAQ

كيف يمكنني إدراج مخطط في مستند؟

استدعِ DocumentBuilder.InsertChart(chartType, width, height). تُعيد العنصر Shape الحاوي؛ اقرأ خاصية Chart الخاصة به لتكوين المخطط.

كيف يمكنني إضافة بيانات إلى مخطط؟

امسح سلسلة العناصر النائبة باستخدام chart.Series.Clear()، ثم استدعِ chart.Series.Add(seriesName, categories, values) (أو إحدى الإصدارات المتعددة لـ Add للبيانات X/Y أو التاريخ أو الفقاعية).

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

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

كيف يمكنني تغيير موضع ظهور وسيلة الإيضاح؟

عيّن Chart.Legend.Position إلى قيمة LegendPosition، مثل LegendPosition.Bottom أو LegendPosition.Right.

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

نعم — افهرس إلى ChartSeries.DataPoints (a ChartDataPointCollection) واضبط Format أو Marker أو Explosion الخاصة بـ ChartDataPoint بشكل مستقل عن تنسيق المستوى السلسلي.


API Reference ملخص

فئة/طريقةوصف
DocumentBuilder.InsertChartيدرج شكل مخطط عند المؤشر ويعيده.
Chartكائن تكوين المخطط، الذي يتم الوصول إليه عبر Shape.Chart.
ChartTypeتعداد لأنواع المخططات المتاحة (خط، شريط، دائري، وأنواع مخططات Word-2016).
ChartSeriesCollection / ChartSeriesسلسلة بيانات المخطط والطرق لإضافة أو إدراج أو إزالةها.
ChartDataPointCollection / ChartDataPointتنسيق لكل نقطة داخل السلسلة.
ChartDataLabelCollection / ChartDataLabelتسميات القيمة/الفئة المعروضة على نقاط المخطط.
ChartAxis / ChartAxisCollectionتكوين المحور — خطوط الشبكة، الوحدات، نقطة التقاطع، تسميات العلامات.
ChartLegend / LegendPositionإظهار وسيلة الإيضاح وموقعها.
ChartTitleالتسمية العامة للمخطط.
ChartDataTableجدول اختياري لقيم السلاسل يظهر أسفل منطقة الرسم.
ChartFormatتنسيق Fill و stroke و shape المشترك لمعظم عناصر المخطط.

انظر أيضاً

 العربية