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

1

8

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');

    });

});
Margalit answered 16/2, 2016 at 9:15 Comment(0)
F
1

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

Filip answered 11/4, 2016 at 15:22 Comment(1)
But if the view has nested table, excel report can't create nested tables.Issi

© 2022 - 2024 — McMap. All rights reserved.