Export to Excel Laravel 5.1
Como gerar uma planilha com extensão XLS em Lavarel 5.1 de forma simples e rápida.
Para isso vamos utilizar o pacote Laravel Excel da MaatWebSite para exportação dos dados.
Laravel Excel é uma maneira de importar e exportar arquivos do Excel e CSV para Laravel 4.* & Laravel 5.* de forma fácil e eficaz. A documentação existente no site do desenvolvedor é bastante rica e sua instalação é realizada em poucos passos.
Nosso primeiro passo é instalar o Laravel 5.1 é criar o projeto com o seguinte comando:
laravel new project
Depois do projeto criado, devemos atualizar o arquivo composer.json com "maatwebsite/excel": "~2.0.0" e executar o comando composer update para baixar nosso novo pacote.
Após a atualização, adicionaremos o
ServiceProvider Maatwebsite\Excel\ExcelServiceProvider::class ao array de providers em config/app.php e estaremos aptos a utilizar o pacote.
No exemplo, precisaremos criar uma rota (Route), um controlador
(Controller) e um modelo (Model).
Nossa rota (Exemplo 1) é do tipo GET e foi definida para o controlador ExportController podendo ser acessado através da URL "export-xls".
route.php(Exemplo 1
<?php
| |
O controlador por sua vez (Exemplo 2) possui apenas um método.
Este fará um get dos dados utilizando o modelo Export e montará o arquivo XLS além de o deixar pronto para download sem a necessidade de criar um arquivo físico no lado do servidor (on the fly).
ExportController.php (Exemplo 2)
<?php | |
namespace App\Http\Controllers; | |
use App\Http\Controllers\Controller; | |
use App\Export; | |
use Maatwebsite\Excel\Facades\Excel as Excel; | |
class ExportController extends Controller | |
{ | |
public function getXls() | |
{ | |
$data = Export::getData(); | |
Excel::create('File', function($excel) use($data) { | |
$excel->sheet('Sheet', function($sheet) use($data) { | |
//Create rows | |
$sheet->rows($data); | |
}); | |
})->download('xls'); | |
} | |
} |
E por fim nosso modelo Export (Exemplo 3). Perceba que ele tem apenas um método publico e estático chamado getData. Este método retorna um array de arrays que alimentarão as linhas do nosso XLS.
Export.php (Exemplo 3)
<?php | |
namespace App; | |
use Illuminate\Database\Eloquent\Model; | |
class Export extends Model | |
{ | |
public static function getData() | |
{ | |
return array( | |
array('name' => 'Mary da Rodrigues', 'sex' => 'F', 'age' => 44), | |
array('name' => 'Robert Souto ', 'sex' => 'M', 'age' => 32), | |
array('name' => 'Ricardo Barbosa ', 'sex' => 'M', 'age' => 47), | |
array('name' => 'Fernanda Soares ', 'sex' => 'F', 'age' => 28), | |
array('name' => 'Wilton Santos ', 'sex' => 'M', 'age' => 23), | |
array('name' => 'Jhon Sa ', 'sex' => 'M', 'age' => 23) | |
); | |
} | |
} | |
Comments
Post a Comment