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