Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel Excel how to load a view to specific row or cell?

I'm using Laravel Excel, I want to load a view file and set it to specific row. Is it possible to do it with laravel excel? bellow is the code for loading view in to the sheet:

Excel::create('New file', function($excel) {

    $excel->sheet('New sheet', function($sheet) {

       $sheet->loadView('folder.view');

    });

});
like image 913
jones Avatar asked Feb 16 '16 09:02

jones


1 Answers

It seems like the package doesn't offer that I this time but maybe you could do something like this.

  • Create a wrapping view that you can pass some parameters to, such as a target row number, column number and inner view to include.

    Excel::create('New file', function($excel) {
    
        $excel->sheet('New sheet', function($sheet) {
    
           $sheet->loadView('path.to.wrapping.view')->with(["targetRow"=>5,"targetCol"=>10,"targetView"=>"path.to.target.view"]);
    
        });
    
    })->download();
    
  • Dynamically generate a table based on the parameters provided to the wrapping view. The content of the view could be something like this.

    @if(isset($targetRow) && isset($targetCol)) table tag @for ($row = 1; $row <= $targetRow + 1; $row++) tr tag @for ($col = 1; $col <= $targetCol + 1; $col++) td tag @if($row == $targetRow && $col == $targetCol) @include($targetView) @endif close td tag @endfor close tr tag @endfor close table tag @endif

like image 181
Yannick Y Avatar answered Oct 08 '22 22:10

Yannick Y