اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

بإمكانك إستخدام حزمة Maatwebsite / Laravel-Excel لتحقيق ذلك:

حتى تعمل الحزمة بالشكل المطلوب لديها بعض المتطلبات:

PHP: ^7.2\|^8.0
Laravel: ^5.8
PhpSpreadsheet: ^1.15
PHP extension php_zip enabled
PHP extension php_xml enabled
PHP extension php_gd2 enabled
PHP extension php_iconv enabled
PHP extension php_simplexml enabled
PHP extension php_xmlreader enabled
PHP extension php_zlib enabled

تثبيت الحزمة:

composer require maatwebsite/excel

يُمكنك تسجيل مزود الخدمة الخاص بالحزمة بنفسك إن أردت في ملف config/app.php:

'providers' => [
    /*
     * Package Service Providers...
     */
    Maatwebsite\Excel\ExcelServiceProvider::class,
]

و حفظ الإسم المستعار في المصفوفة aliases:

'aliases' => [
    ...
    'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]

هاتين الخطوتين ليستا ضروريتان لأن الحزمة auto-discovered.

لنشر ملف الإعدادات الخاص بالحزمة في مجلد الإعدادات:

php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config

تدعم الحزمة التصدير و الإستيراد من و إلى قاعدة البيانات،

مثال بسيط لتصدير سجلات النموذج User:

نقوم بإنشاء صنف عن طريق الأمر:

php artisan make:export UsersExport --model=User

سنجد مجلد جديد بالإسم Exports في المجلد app و بداخله الملف UsersExport.php و أي صنف ننُشؤه لاحقاً بنفس الأمر نجده في نفس المسار.

نقوم بملء الملف بالشكل التالي:

<?php

namespace App\Exports;

use App\Models\User;
use Maatwebsite\Excel\Concerns\FromCollection;

class UsersExport implements FromCollection
{
    public function collection()
    {
        return User::all();
    }
}

يُمكن التصدير من مجموعة (Collection) او من إستعلام أو من صفحة عرض و كل الطرق مشروحة في توثيق الحزمة.

في المتحكم المسؤول نقوم بإنشاء دالة جديدة بالشكل التالي:

<?php

namespace App\Http\Controllers;

use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;

class UsersController extends Controller 
{
    public function export() 
    {
        return Excel::download(new UsersExport, 'users.xlsx');
    }
}

ثم ننُشئ المسار الذي من خلاله نصل الى الدالة export:

Route::get('users/export/', 'UsersController@export');

الآن بإمكانك إنشاء زر للوصول إلى المسار او يُمكنك تصفح الرابط مباشرة من المتصفح و سيتم تحميل ملف إكسل بالإسم users.xlsx. يحتوي على البيانات.

بإمكانك الإطلاع على التوثيق الرسمي للحزمة للإطلاع على الأمر بشكل موسع: Laravel Excel

  • 0
نشر
بتاريخ 3 ساعات قال عبود سمير:

بإمكانك إستخدام حزمة Maatwebsite / Laravel-Excel لتحقيق ذلك:

حتى تعمل الحزمة بالشكل المطلوب لديها بعض المتطلبات:


PHP: ^7.2\|^8.0
Laravel: ^5.8
PhpSpreadsheet: ^1.15
PHP extension php_zip enabled
PHP extension php_xml enabled
PHP extension php_gd2 enabled
PHP extension php_iconv enabled
PHP extension php_simplexml enabled
PHP extension php_xmlreader enabled
PHP extension php_zlib enabled

تثبيت الحزمة:


composer require maatwebsite/excel

يُمكنك تسجيل مزود الخدمة الخاص بالحزمة بنفسك إن أردت في ملف config/app.php:


'providers' => [
    /*
     * Package Service Providers...
     */
    Maatwebsite\Excel\ExcelServiceProvider::class,
]

و حفظ الإسم المستعار في المصفوفة aliases:


'aliases' => [
    ...
    'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]

هاتين الخطوتين ليستا ضروريتان لأن الحزمة auto-discovered.

لنشر ملف الإعدادات الخاص بالحزمة في مجلد الإعدادات:


php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config

تدعم الحزمة التصدير و الإستيراد من و إلى قاعدة البيانات،

مثال بسيط لتصدير سجلات النموذج User:

نقوم بإنشاء صنف عن طريق الأمر:


php artisan make:export UsersExport --model=User

سنجد مجلد جديد بالإسم Exports في المجلد app و بداخله الملف UsersExport.php و أي صنف ننُشؤه لاحقاً بنفس الأمر نجده في نفس المسار.

نقوم بملء الملف بالشكل التالي:


<?php

namespace App\Exports;

use App\Models\User;
use Maatwebsite\Excel\Concerns\FromCollection;

class UsersExport implements FromCollection
{
    public function collection()
    {
        return User::all();
    }
}

يُمكن التصدير من مجموعة (Collection) او من إستعلام أو من صفحة عرض و كل الطرق مشروحة في توثيق الحزمة.

في المتحكم المسؤول نقوم بإنشاء دالة جديدة بالشكل التالي:


<?php

namespace App\Http\Controllers;

use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;

class UsersController extends Controller 
{
    public function export() 
    {
        return Excel::download(new UsersExport, 'users.xlsx');
    }
}

ثم ننُشئ المسار الذي من خلاله نصل الى الدالة export:


Route::get('users/export/', 'UsersController@export');

الآن بإمكانك إنشاء زر للوصول إلى المسار او يُمكنك تصفح الرابط مباشرة من المتصفح و سيتم تحميل ملف إكسل بالإسم users.xlsx. يحتوي على البيانات.

بإمكانك الإطلاع على التوثيق الرسمي للحزمة للإطلاع على الأمر بشكل موسع: Laravel Excel

شكرا لك . هل استطيع عمل filter  مع التصدير

  • 0
نشر
بتاريخ 24 دقائق مضت قال Hafsa Aly:

هل هناك طريقة اخرى لعمل التصدير باستخدام js

يُمكنك إستخدام حزمة DataTables فهي سهلة و بسيطة و توفر التصدير لعدة أشكال. كما يوجد عدة بدائل يُمكنك الوصول إليها بإستخدام محرك البحث بكتابة:

javascript export data to excel

و هذا مثال على codepen يستخدم مكتبة table-to-excel:

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...