باستخدام LightCells API

العمارة المدفوعة بالحدث

يوفر Aspose.Cells LightCells API ، المصمم بشكل أساسي لمعالجة بيانات الخلية واحدًا تلو الآخر دون إنشاء كتلة نموذج بيانات كاملة (باستخدام مجموعة Cell وما إلى ذلك) في الذاكرة. إنه يعمل في وضع يحركه الحدث.

لحفظ المصنفات ، قم بتوفير محتوى الخلية خلية تلو الأخرى عند الحفظ ، ويحفظها المكون في ملف الإخراج مباشرة.

عند قراءة ملفات القوالب ، يوزع المكون كل خلية ويقدم قيمتها واحدة تلو الأخرى.

في كلا الإجراءين ، تتم معالجة كائن Cell واحد ثم يتم التخلص منه ، لا يحتفظ كائن المصنف بالمجموعة. في هذا الوضع ، يتم حفظ الذاكرة عند استيراد وتصدير ملف Microsoft Excel الذي يحتوي على مجموعة بيانات كبيرة والتي من شأنها أن تستخدم قدرًا كبيرًا من الذاكرة.

على الرغم من أن LightCells API يعالج الخلايا بنفس الطريقة لملفات XLSX و XLS (لا يقوم فعليًا بتحميل جميع الخلايا في الذاكرة ولكنه يعالج خلية واحدة ثم يتجاهلها) ، فإنه يوفر الذاكرة بشكل أكثر فعالية لملفات XLSX من ملفات XLS بسبب نماذج البيانات المختلفة وهياكل التنسيقين.

لكن،لملفات XLS لتوفير المزيد من الذاكرة ، يمكن للمطورين تحديد موقع مؤقت لحفظ البيانات المؤقتة التي تم إنشاؤها أثناء عملية الحفظ. عادة،قد يؤدي استخدام LightCells API لحفظ ملف XLSX إلى توفير 50٪ أو أكثر من الذاكرة من استخدام الطريقة الشائعة ،حفظ XLS قد يوفر حوالي 20-40٪ من الذاكرة.

كتابة ملف إكسل كبير

توفر Aspose.Cells واجهة ، LightCellsDataProvider ، يجب تنفيذها في برنامجك. تمثل الواجهة مزود البيانات لحفظ ملفات جداول البيانات الكبيرة في وضع الوزن الخفيف.

عند حفظ مصنف بواسطة هذا الوضع ، يتم تحديد StartSheet (int) عند حفظ كل ورقة عمل في المصنف. بالنسبة إلى ورقة واحدة ، إذا كانت StartSheet (int) صحيحة ، فسيتم توفير جميع بيانات وخصائص الصفوف والخلايا في هذه الورقة المراد حفظها من خلال هذا التنفيذ. في المقام الأول ، يتم استدعاء NextRow () للحصول على فهرس الصف التالي ليتم حفظه. إذا تم إرجاع فهرس صف صالح (يجب أن يكون فهرس الصف بترتيب تصاعدي حتى يتم حفظ الصفوف) ، فسيتم توفير كائن صف يمثل هذا الصف للتنفيذ لتعيين خصائصه بواسطة StartRow (الصف).

لصف واحد ، يتم التحقق من NextCell () أولاً. إذا تم إرجاع فهرس عمود صالح (يجب أن يكون فهرس العمود بترتيب تصاعدي لجميع الخلايا في صف واحد ليتم حفظه) ، فسيتم توفير كائن Cell يمثل تلك الخلية للتنفيذ لتعيين بياناتها وخصائصها بواسطة StartCell (Cell). بعد تعيين بيانات الخلية ، يتم حفظ الخلية مباشرة في ملف جدول البيانات الذي تم إنشاؤه ويتم فحص الخلية التالية ومعالجتها.

كتابة ملف Excel كبير: مثال

يرجى الاطلاع على نموذج التعليمات البرمجية التالي لمعرفة عمل LightCells API. قم بإضافة وإزالة أو تحديث مقاطع التعليمات البرمجية وفقًا لاحتياجاتك.

يقوم البرنامج بإنشاء ملف ضخم بامتداد10000 (10000 × 30 مصفوفة) سجل في ورقة عمل وتعبئتها ببيانات وهمية. يمكنك تحديد المصفوفة الخاصة بك عن طريق تغيير متغيرات rowsCount و colsCount في طريقة Main ().

قراءة ملفات إكسل الكبيرة

يوفر Aspose.Cells واجهة LightCellsDataHandler التي يجب تنفيذها في برنامجك. تمثل الواجهة مزود البيانات لقراءة ملفات جداول البيانات الكبيرة في وضع الوزن الخفيف.

عند قراءة مصنف في هذا الوضع ، يتم تحديد StartSheet عند قراءة كل ورقة عمل في المصنف. بالنسبة للورقة ، إذا أرجع StartSheet صحيحًا ، فسيتم فحص جميع بيانات وخصائص الخلايا الموجودة في الصفوف والأعمدة بالورقة ومعالجتها من خلال تنفيذ هذه الواجهة. لكل صف ، يتم استدعاء StartRow للتحقق مما إذا كان يحتاج إلى المعالجة. إذا كان الصف بحاجة إلى المعالجة ، فستتم قراءة خصائصه أولاً ويمكن للمطور الوصول إلى خصائصه باستخدام ProcessRow. إذا كانت خلايا الصف بحاجة أيضًا إلى المعالجة ، فيجب أن ترجع عملية ProcessRow القيمة true ثم يتم استدعاء StartCell لكل خلية موجودة في الصف للتحقق مما إذا كانت هناك خلية واحدة بحاجة إلى المعالجة. إذا احتاجت خلية واحدة إلى المعالجة ، فسيتم استدعاء ProcessCell لمعالجة الخلية من خلال تنفيذ هذه الواجهة.

قراءة ملفات Excel الكبيرة: مثال

يرجى الاطلاع على نموذج التعليمات البرمجية التالي لمعرفة عمل LightCells API. قم بإضافة وإزالة أو تحديث مقاطع التعليمات البرمجية وفقًا لاحتياجاتك.

يقوم البرنامج بقراءة ملف ضخم به ملايين السجلات في ورقة عمل. يستغرق الأمر بعض الوقت لقراءة كل ورقة في المصنف. يقرأ نموذج التعليمة البرمجية الملف ويسترد العدد الإجمالي للخلايا وعدد السلاسل وعدد الصيغ في كل ورقة عمل.