控制Excel excel导出

时间:2016-08-12 06:02:32

标签: php mysql excel laravel

所以基本上得到了laravel项目,并在excel中导出表。我使用this进行导出。直到现在我只从数组或我的情况下导出。

public function exportGames()
{
  $export = Games::all();
  Excel::create('Games Data', function($excel) use($export){
     $excel->sheet('Games', function($sheet) use($export){
        $sheet->fromArray($export);
     });
  })->export('xlsx');
}

然而,这会返回完整的表数据,其中包括一些要消失的字段(时间戳等)。此外,无法显示关系表(仅在页面上的实际表中)。在文档中花费数小时仍然不了解如何操作。想撕掉我的头发。如何修改要导出的列。谢谢你的建议。

3 个答案:

答案 0 :(得分:0)

html表

@foreach($games as $game)
    <tr>
        <td>{{ $game->client_game_id }}</td>
        <td>{{ $game->gameid }}</td>
        <td>{{ $game->description }}</td>
        <td>{{ $game->game_type }}</td>
        <td>{{ $game->db_name }}</td>
        <td>{{ $game->short_name }}</td>
        <td>
            <a href="" role="button" data-toggle="modal"
                data-toggle="modal"
                data-target="#updateGameModal"
                data-id="{{ $game_client->client_game_id }}"
                data-name="{{ $game_client->client_game_name }}"
            >
                <span class="label label-warning">Edit</span>
            </a>
        </td>
    </tr>
    @endforeach

控制器

  $games = Games::all();
  return view('settings.gameservers', ['games' => $games]);

答案 1 :(得分:0)

看起来很简单:

$export = Games::select(['client_game_id', 'client_game_name', 'gameid', 'description', 'game_type', 'db_name', 'short_name'])->get();

您只会在导出的XLS文件中看到这些列。

答案 2 :(得分:0)

您可以这样做

$export = Games::all();
  Excel::create('Games Data', function($excel) use($export){
     $excel->sheet('Games', function($sheet) use($export){
       foreach ($export as $key => $value) {
                $exports[] = array('email' => $value['email'], 'name' =>$value['name']);
            } 
     $sheet->fromArray($exports);
     });
  })->export('xlsx');