عنوان مقاله :

Laravel-Excel - تبدیل کردن ساده اطلاعات مدل به اکسل

گردآوری و تالیف : حسام موسوی
تاریخ انتشار : 29 آبان 1394
دسته بندی ها : لاراول

امروز من می خوام به طور خلاصه بررسی اجمالی در مورد پکیج Laravel-Excel داشته باشم . به نظرم احتیاج به این نیست که در مورد این مطلب توضیح خاصی بدم چون شما به راحتی از عنوان این مطلب میتونید هدف این آموزش رو درک کنید . اما چیزی که من میخوام در این پست بهتون نشون بدم اینکه شما چطوری میتونید اطلاعات مدل رو به راحتی به فایل اکسل تبدیل کنید . 

اساسا ، پکیج Laravel-Excel از PHPExcel برای کار با فایل های اکسل استفاده میکنه . تنها با این هدف به پکیج تبدیل شده تا کار با PHPExcel رو خیلی راحت تر کنه . 

روش نصب Laravel-Excel

خب در قدم اول کاری که برای نصب هر پکیج انجام میدید . 

1. composer.json :

"maatwebsite/excel": "~2.0.0"

در هنگام نصب ما وابسته های بصری رو میتونیم مشاهده کنیم . 

2. config/app.php :

خب کد زیر را در بخش providers قرار دهید

Maatwebsite\Excel\ExcelServiceProvider:class

و همینطور کد زیر را در بخش aliases

'Excel' => Maatwebsite\Excel\Facades\Excel:class

3. Publishing the config :

php artisan vendor:publish

حالا به قسمت جادویش میرسیم ، 

بیاید با جدول معمول Users که در لاراول بطور پیش فرض قرار داده اطلاعات کاربرها رو با استفاده از پکیج Laravel-Excel داخل فایل اکسل بریزیم البته فقط فیلد های که احتیاج داریم نه اینکه بیایم فیلدی مثل پسورد رو خروجی بگیریم . خب چطور این کارو انجام بدیم ؟ به کد زیر دقت کنید . 

$users = User::select('id', 'name', 'email', 'created_at')->get();
Excel::create('users', function($excel) use($users) {
    $excel->sheet('Sheet 1', function($sheet) use($users) {
        $sheet->fromArray($users);
    });
})->export('xls');

نتیجه کد بالا با عنوان users.xls دانلود میشه . ( اسم فایل زمانی که Excel::create(‘users‘ …)  رو میسازید انتخاب میشه ) که اگه فایل اکسل رو باز کنید نتیجه زیر رو میبینید . 

شیرین بود ؟ اینطور نیست ؟

البته Laravel-Excel دارای توابع خیلی زیادی برای کار با Excel . شما میتونید به راحتی به sheets ها استایل بدید یا با استفاده از فایل های Excel اطلاعات رو وارد دیتابیس بکنید و خیلی کارهای دیگه ای که به سادگی با توابع این کتابخانه قابله انجامه . 

به خاطر داشته باشید که برخی از الزامات مورد نیاز برای کار با این پکیج رو باید داشته باشید تا پکیج بدرستی کار کنه - این الزامات رو در زیر لیست میکنم . 

  • PHP version >= 5.3.7
  • Laravel >= 4.1
  • PHPOffice PHPExcel >= 1.8.0 (included by composer.json)
  • PHP extension php_zip enabled (required if you need PHPExcel to handle .xlsx .ods or .gnumeric files)
  • PHP extension php_xml enabled
  • PHP extension php_gd2 enabled (optional, but required for exact column width autocalculation)

امیدوارم مورد توجه شما قرار گرفته باشه .  

مقالات پیشنهادی

دیباگ کردن اپلیکیشن های لاراولی با لاراول Debugbar

پکیج لاراول دیباگر توسط شخصی به نام Barry vd. Heuvel منتشر شده که به شما اجازه میده خیلی سریع و راحت اطلاعات اپلیکیشن لاراولی خودتون رو در یک رابطه گر...

تکرار کردن یک سطر در لاراول

امروز میخواهم در مورد ویژگی در لاراول صحبت کنم که به اصطلاح "hidden" است ، یعنی این قابلیت در سیستم لاراول وجود دارد اما در documentation لاراول چیزی...

فیلتر کردن نتایج query ها با شروط مختلف

شاید عنوان این مطلب برای شما کمی گیج کننده باشه ، اما بزارید براتون با یک مثال سادش کنم شما دارای لیستی از مشتری هستید و اونا رو با دستور Customer::al...

چرا لاراول بهترین فریمورک پی اچ پی است

لاراول یک فریم ورک رایگان با زبان php است که برای توسعه برنامه های کاربردی وب مورد استفاده قرار میگیره . این فریمورک متن باز بوده و از الگویی (model-v...

دیدگاه های ارزشمند شما

هادی | 2 سال پیش

با سلام
ممنون و سپاس فراوان بابت سایت خوبتون.
اگر امکان داره نمایش همین فایل با استفاده از قالب blade رو آموزش بدید.

admin | 2 سال پیش

نمایش اطلاعات گرفته شده از دیتابیس در blade منظورتونه ؟
اگه این منظورتونه که کار خیلی ساده ایه

بهنام فلاح پور | 2 سال پیش

ممنون از آموزش مفیدتون ..

عذر می خوام جناب موسوی که اینجا مطرح می کنم، می خواستم درخواست آموزش ایجاد خبرنامه برا سایت رو ازتون کنم ..

behnam | 2 سال پیش

از یه نظر به خاطر محدودیت های موجود توی پلن رایگان mailchimp، از یه نظرم به خاطر آشنا شدن با مراحل انجام چنین کاری و قسمت های queue و ارسال ایمیل و ...

ممنونم ..

admin | 2 سال پیش

چشم بزودی با لاراول هم اینو تدریس میکنم اما بهتر نیست برای خبرنامه از سرویس های مثل mailchimp.com استفاده کنید که کاملا مدیریت شده است ؟

Webdeveloper | 2 سال پیش

سلام جناب موسوي
ممنون از توجه شما.
آيا موارد ديگه اي از اين پكيج آموزش ميدهيد ؟

admin | 2 سال پیش

اگه فرصت بشه بله حتما