Laravel
엑셀(Excel) 다루기
짱구를왜말려?
2020. 4. 27. 14:12
반응형
SMALL
# Laravel Excel 패키지를 사용하여 엑셀 다운로드를 진행해볼 예정
https://docs.laravel-excel.com/3.1/getting-started/installation.html
Installation | Laravel Excel
Installation Requirements PHP: ^7.0 Laravel: ^5.5 PhpSpreadsheet: ^1.6 PHP extension php_zip enabled PHP extension php_xml enabled PHP extension php_gd2 enabled Installation Require this package in the composer.json of your Laravel project. This will downl
docs.laravel-excel.com
1. 세팅
composer require maatwebsite/excel
@ config/app.php
'providers' => [
/*
* Package Service Providers...
*/
Maatwebsite\Excel\ExcelServiceProvider::class,
]
....
'aliases' => [
...
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
php artisan make:export CommentsExport --model=Comment
@ CommentExport
<?php
namespace App\Exports;
use App\Comment;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
class CommentsExport implements FromCollection, WithHeadings, WithMapping
{
public function collection()
{
return Comment::all();
}
public function map($comment) : array
{
return [
$comment->url,
$comment->name,
$comment->body,
$comment->published_at
];
}
public function headings(): array
{
return [
"URL",
"이름",
"내용",
"댓글일자"
];
}
}
@ CommentController
<?php
namespace App\Http\Controllers;
use App\Exports\CommentsExport;
use Maatwebsite\Excel\Facades\Excel;
class CommentsController extends Controller
{
public function export()
{
// set_time_limit(0); 이거 걸어두면 10,000 ROW까지는 커버 가능, 근데 그 이상은 chunk 알아봐
return Excel::download(new CommentsExport, 'comments.xlsx');
}
}
@ web.php
Route::get('comments/export/', 'CommentsController@export');
LIST