البرمجة

تصدير بيانات الجدول إلى ملف CSV باستخدام CodeIgniter

عند العمل مع إطار العمل CodeIgniter وتقديم جداول البيانات في صفحات الويب، يأتي وقت تصدير هذه البيانات إلى ملف .csv لتحقيق التنقل السلس والاحتفاظ بالبيانات بطريقة سهلة للقراءة. يتطلب هذا استخدام تقنيات معينة لتحقيق الهدف المرغوب. دعونا نستكشف الخطوات التي يمكن اتخاذها لتحقيق هذه المهمة باستخدام CodeIgniter.

أولاً وقبل كل شيء، يجب أن تكون قد قمت بتثبيت مكتبة PHPExcel في مشروعك. يمكنك القيام بذلك عبر Composer باستخدام الأمر التالي:

bash
composer require phpoffice/phpexcel

بعد التثبيت، يمكنك إنشاء وحدة تحكم جديدة في CodeIgniter للتحكم في عملية تصدير الجدول إلى ملف .csv. قم بإنشاء وحدة التحكم باستخدام الأمر التالي:

bash
php spark make:controller ExportController

ثم، قم بتحديث الوحدة التحكم الجديدة لتقوم بتصدير الجدول. قد يكون لديك مثلاً:

php
namespace App\Controllers; use CodeIgniter\Controller; class ExportController extends Controller { public function index() { // استدعاء نموذج البيانات الخاص بك للحصول على السجلات $model = new \App\Models\YourModel(); $data['records'] = $model->findAll(); // إنشاء ملف CSV وكتابة البيانات إليه $csvFileName = WRITEPATH . 'uploads/exported_data.csv'; $csvFile = fopen($csvFileName, 'w'); // كتابة رأس الملف fputcsv($csvFile, array_keys($data['records'][0])); // كتابة البيانات foreach ($data['records'] as $record) { fputcsv($csvFile, $record); } // إغلاق الملف fclose($csvFile); // قم بتنزيل الملف return $this->response->download($csvFileName, null)->deleteFileAfter(10); } }

تأكد من تغيير YourModel إلى اسم النموذج الخاص بك الذي يحتوي على البيانات التي تريد تصديرها.

الآن، عند زيارة yourdomain.com/export، ستقوم الوحدة التحكم بتصدير البيانات إلى ملف .csv وتوفيره للتنزيل. يمكنك أيضًا تخصيص الشيفرة وفقًا لاحتياجاتك، مثل تحسين تنسيق الملف أو إضافة ميزات إضافية.

المزيد من المعلومات

بالتأكيد، دعنا نضيف بعض المعلومات الإضافية لتعزيز فهم العملية وتحسين الأداء.

أولاً وقبل كل شيء، يُفضل دائمًا استخدام مكتبة معالجة ملفات CSV مدمجة في PHP بدلاً من مكتبة PHPExcel، حيث أنها أكثر فاعلية وأقل تعقيدًا. يمكنك استخدام مكتبة league/csv عبر Composer بالطريقة التالية:

bash
composer require league/csv

بعد ذلك، قم بتحديث وحدة التحكم لتستخدم هذه المكتبة:

php
namespace App\Controllers; use CodeIgniter\Controller; use League\Csv\Writer; class ExportController extends Controller { public function index() { // استدعاء نموذج البيانات الخاص بك للحصول على السجلات $model = new \App\Models\YourModel(); $data['records'] = $model->findAll(); // إنشاء ملف CSV وكتابة البيانات إليه باستخدام مكتبة league/csv $csvFileName = WRITEPATH . 'uploads/exported_data.csv'; $csvFile = Writer::createFromPath($csvFileName, 'w+'); // كتابة رأس الملف $csvFile->insertOne(array_keys($data['records'][0])); // كتابة البيانات $csvFile->insertAll($data['records']); // قم بتنزيل الملف return $this->response->download($csvFileName, null)->deleteFileAfter(10); } }

هذا التحديث يسمح بتحسين أداء العملية وتقليل التعقيد. يُفضل أيضًا استخدام الطريقة createFromPath لإنشاء الملف مباشرةً.

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

زر الذهاب إلى الأعلى