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