Import & Export Excel in Laravel
أولاً: إنشاء المشروع
Export Import Excel
1: إنشاء مشروع جديد بعنوان ExcelData

2: فتح المشروع الذي قمنا بإنشاءه


3: تشغيل المشروع

ثانياً: إنشاء قاعدة البيانات واضافة بيانات
إنشاء قاعدة بينات وربطها مع لارافيل ثم إضافة البيانات بواسطة seeder


ثالثاً: إنشاء Controller و Routes والصفحات التي نحتاجها
1: بعد اضافة البيانات سنقوم بإنشاء صفحة خاصة بعرض البيانات الموجودة في جدول users في قاعدة البيانات تسمى users وصفحة اخرى سنقوم من خلالها إضافة البيانات لجدول users الموجود في قاعدة البيانات

2- انشاء controller يسمى UserController وإضافة بعض الدوال

3- إضافة routes في ملف web للوصول للصفحات التي انشأناها

4- إضافة روابط Export & Import في صفحة users لتنزيل البيانات كملف اكسيل أو للدخول لصفحة addusers ليتم رفع ملف اكسيل من خلاله


رابعاً: تجهيز بيئة العمل الخاصة بعمليات Export & Import
1- الدخول لرابط https://laravel-excel.com وسنجد كل مايخص استيراد وتصدير البيانات وكل الأوامر التي سنحتاجها

2- كتابة الأمر التالي

3- وإذا واجهتك بعض المشاكل قم بكاتبة الأمر التالي

ويتم تنفيذ كل الخطوات الموجودة في الرابط لكي يتم تنفيذ الاستيراد والتصدير بنجاح

4- ثم سنقوم بكتابة الأمر التالي

ثم سنتأكد من إنشاء ملف يسمى excel في مجلد config

خامساً: إنشاء UsersExport class & UsersImport class
1- سنقوم بكتابة الأمر التالي لانشاء class يسمى UsersExport داخل مجلد يسمى export


2 – ثم سنقوم بانشاء class آخر يسمى UsersImport داخل مجلد import


سنلاحظ انشاء الملفات كالآتي


سادساً: تجربة عمليات التصدير والاستيراد
1- اضافة routes name في الروابط الموجودة في صفحة users

2- اضافة route import في الفورم الموجود في صفحة addusers

3- اضافة routes خاصة بـ export & import في ملف web

4- إضافة دوال في UserController خاصة بـ export & import

5- اضافة اسماء الحقول التي نريد اضافة البيانات إليها في ملف UsersImport

6- للحصول على كل البيانات الموجودة في جدول users في ملف اكسيل سنقوم بكتابة الكود التالي

7- للحصول على بيانات معينة مثل البريد الالكتروني الموجود في جدول users في ملف اكسيل سنقوم بكتابة الكود التالي

8- هذا شكل البيانات بعد فتح ملف الاكسيل الذي قمنا بتنزيله عند الضغط على Export Excel في صفحة users

وهذه البيانات عند الحصول على ملف آخر يحتوي على البريد الإلكتروني فقط

9- سوف نضغط على Import Excel للدخول إلى صفحة addusers ونقوم برفع ملف اكسيل به بيانات نريد رفعها لجدول users الموجود في قاعدة البيانات


بعد رفع الملف سنضغط على زر upload وسنلاحظ رفع اضافة البيانات لجدول users كالآتي

ولو دخلنا لجدول users الموجود في قاعدة البيانات سنلاحظ الآتي

سابعاً: الكود الذي قمنا بكتابته لإنشاء المشروع
users.blade.php
Excel Data
Users Table
@if(session('success'))
{{ session('success') }}
@endif
Export Excel
Import Excel
#
Name
Email
@foreach ($users as $user)
{{$user->id}}
{{$user->name}}
{{$user->email}}
@endforeach
adduser.blade.php
Excel Data
Add Users
web.php
name('adduser');
Route::get('/export',[UserController::class,'export'])->name('export');
Route::post('/import',[UserController::class,'import'])->name('import');
UsersController.php
file('import'));
return redirect('/')->with('success', 'تمت إضافة البيانات بنجاح');
}
}
UsersExport.php
get();
}
}
UsersImport.php
$row[0],
'email' => $row[1],
'password' => Hash::make($row[2]),
]);
}
}
وبهذا نكون قد انشأنا بروجكت يحتوي على طريقة تصدير بيانات لملف اكسيل واستيراد بيانات من ملف اكسيل باستخدام اطار العمل لارافيل.