كيفية استخدام المكررات وأماكن استخدامها
يمكن استخدام كائن واجهة المكرر للتنقل عبر جميع عناصر مجموعة. يمكن استخدام المكررات لفحص البيانات في مجموعة لكن لا يمكن استخدامها لتعديل المجموعة الأساسية. بشكل عام، لاستخدام مكرر لتصفح محتويات مجموعة، يجب اتخاذ الخطوات التالية:
- الحصول على مكرر إلى بداية المجموعة من خلال استدعاء طريقة المكرر للمجموعة.
- إعداد حلقة تقوم بالاتصال بالطريقة hasNext. وتكرر الحلقة طالما أن طريقة hasNext تعيد true.
- داخل الحلقة، الحصول على كل عنصر عن طريق استدعاء الطريقة next.
توفر واجهات برنامج تطبيق Aspose.Cells مجموعة من المكررات، ومع ذلك، يناقش هذا المقال بشكل رئيسي الأنواع الثلاثة المدرجة أدناه.
- مكرر الخلايا
- مكرر الصفوف
- مكرر الأعمدة
كيفية استخدام المكررات
مكرر الخلايا
هناك طرق مختلفة للوصول إلى مكرر الخلايا، ويمكن للشخص استخدام أي من هذه الطرق استنادًا إلى متطلبات التطبيق. إليك الأساليب التي تعيد مكرر الخلايا.
- Cells.iterator
- Row.iterator
- Range.iterator
تسترجع جميع الطرق المذكورة أعلاه المكدس الذي يسمح بتجوال مجموعة الخلايا التي تم تهيئتها.
يوضح المثال التالي تنفيذ فئة المكدس لمجموعة الخلايا.
مكدس الصفوف
يمكن الوصول إلى مكدس الصفوف أثناء استخدام طريقة RowCollection.iterator. يوضح المثال التالي تنفيذ المكدس لفئة RowCollection.
مكدس الأعمدة
يمكن الوصول إلى مكدس الأعمدة أثناء استخدام طريقة ColumnCollection.iterator. يوضح المثال التالي تنفيذ المكدس لفئة ColumnCollection.
أين يجب استخدام المكدس
من أجل مناقشة مزايا استخدام المكدس، دعنا نأخذ مثالًا في الوقت الحقيقي.
سيناريو
متطلبات تطبيق هي أن يتم تجوال كل الخلايا في ورقة عمل معينة لقراءة قيمها. قد يكون هناك عدة طرق لتنفيذ هذا الهدف. يتم توضيح بعضها أدناه.
استخدام نطاق العرض
استخدام MaxDataRow و MaxDataColumn
كما يمكنك أن تلاحظ أن النهجين المذكورين أعلاه يستخدمان منطقًا أو أقل مماثل، وهو؛ حلقة عبر كل الخلايا في المجموعة لقراءة قيم الخلية. يمكن أن يكون هذا مشكلة لعدة أسباب كما هو مناقش أدناه.
١. الواجهات البرمجية مثل MaxRow، MaxDataRow، MaxColumn، MaxDataColumn & MaxDisplayRange تتطلب وقتًا إضافيًا لجمع الإحصاءات المقابلة. في حالة كانت مصفوفة البيانات (الصفوف مرات الأعمدة) كبيرة، قد تفرض استخدام هذه الواجهات عقوبة أداء.
- في معظم الحالات، لا تتم إنشاء جميع الخلايا في النطاق المعطى. في مثل هذه الحالات، فحص كل خلية في البيانات ليس فعَّالًا كمقارنة بفحص الخلايا المهيئة فقط. ١. الوصول إلى خلية في حلقة مثل Cells.get(rowIndex, columnIndex) سيتسبب في تهيئة جميع كائنات الخلايا في النطاق، والذي قد يتسبب في نهاية المطاف في خطأ نفاد الذاكرة.
الاستنتاج
بناءً على الحقائق المذكورة أعلاه، فإن السيناريوهات الممكنة التالية حيث ينبغي استخدام المكدس.
- الوصول القراءة فقط لمجموعة الخلايا مطلوب، أي ؛ المتطلب هو فقط فحص الخلايا.
- يجب عبور عدد كبير من الخلايا.
- يجب عبور الخلايا/الصفوف/الأعمدة المهيأة فقط.