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
Route::get('export-xls', 'ExportController@getXls');

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

Popular posts from this blog

Vue.Js Exemple

Instalando o NodeJS