گرفتن خروجی اکسل از جداول لاراول ۵٫۴
با سلام خدمت دوستان عزیز. به عنوان یک توسعه دهنده و برنامه نویس وب در حال طراحی یک سایت فروشگاهی باشید که در آن جداولی مربوط به آیتم ها و لیست کالا ها را ذخیره می کنید و یا اطلاعاتی راجع به لیست قیمت محصولات خود را در table هایی نگه می دارید. گاهی اوقات ممکن است بخواهید از این اطلاعات خروجی بگیرید. در این پست آموزشی قصد داریم نحوه گرفتن خروجی اکسل excel از داده های بانک اطلاعاتی لاراول را به شما عزیزان آموزش دهیم. در صورتیکه قصد دارید گزارش خروجی در قالب فایل PDF باشد آموزش گرفتن خروجی PDF از جداول لاراول را مشاهده کنید.
با ما همراه باشید:
ابتدا فایل composer.json را باز کرده و دستور زیر را در قسمت require وارد کنید:
"maatwebsite/excel": "~2.1.0"
سپس در ترمینال/CMD دستور زیر را اجرا کنید:
composer update
کمی صبر کنید تا پکیج مورد نظر به طور کامل نصب گردد.
حالا فایل app.php موجود در پوشه config را باز کنید و service provider زیر را به آن اضافه کنید:
'Maatwebsite\Excel\ExcelServiceProvider',
همچنین خط زیر را در قسمت Aliases اضافه کنید:
'Excel' => 'Maatwebsite\Excel\Facades\Excel',
حالا دستور زیر را در ترمینال/CMD اجرا کنید:
php artisan vendor:publish
با اجرای دستور فوق، فایل تنظیمات مربوط به پکیج اکسل به پروژه شما اضافه خواهد شد.
ساخت مدل و جدول:
با استفاده از مایگریشن یک جدول با نام items بسازید:
php artisan make:migration create_items_table
حالا به پوشه database/migrations رفته، مایگریشن ساخته شده را باز کرده و کد های زیر را به آن اضافه کنید.
Schema::create('items', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('description');
$table->timestamps();
});
همچنین کد زیر را نیز در تابع down اضافه کنید:
Schema::drop('items');
حالا نوبت به ساخت مدل Item می رسد:
php artisan make:model Item
مدل ساخته شده در پوشه app و با نام Item.php ذخیره خواهد شد. مدل Item را باز کرده و مطابق کد زیر آن را ویرایش کنید:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Item extends Model {
public $fillable= ['id', 'title', 'description'];
}
یک کنترلر با نام ExcelController بسازید:
php artisan make:controller ExcelController
کنترلر ساخته شده در پوشه app/Http/Controllers را باز کرده و کد زیر را در آن کپی کنید:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Item; use DB;
use Excel;
class ExcelController extends Controller {
public function downloadExcel() {
$data = Item::get()->toArray();
return Excel::create('Chasboon', function($excel) use ($data) {
$excel->sheet('Chasboon', function($sheet) use ($data) {
$sheet->fromArray($data);
});
})->download('xlsx');
}
}
پارامتر اول در تابع create نام فایل خروجی می باشد که در این مثال chasboon انتخاب شده است. خب نوبت به تعریف route میرسد. فایل web.php در پوشه routes را باز کنید و مسیر زیر را در آن تعریف کنید:
Route::get('export', '[email protected]');
پروژه را اجرا کرده و مسیر export/ را در مرورگر خود وارد کنید. تبریک میگم!!! به پایان آموزش رسیدیم. چسبون مرجع برنامه نویسی و طراحی وب