2017-08-15 9 views
0

私は列の見出しの名前を変更したいと思います。 どうやってですか?Laravel with Maatwebsite

これは、コントローラのコードです:LaravelExcelWorksheetインスタンスのfromArray()方法が基づいてあなたのための見出しを自動生成しますデフォルトで

current OUTPUT

+0

あなたが望むなら、これを達成するためにあなたのクエリに 'select ... AS'を使うことができます。 – Ohgodwhy

+0

ありがとう:) ................. –

答えて

1

:現在

public function excelterima($nm_perusahaan){ 
    if($user = Auth::user()->admin == 2){ 
     $users = Mstbeasiswa::select('NO_ANGGOTA', 'NM_ANGGOTA', 'GOLONGAN', 'NPK', 'CABANG', 'NM_ANAK', 'NM_SKL', 'id') 
       ->where('flag_terima', '1') 
       ->where('NM_PERUSAHAAN', $nm_perusahaan) 
       ->orderBy('id', 'asc') 
       ->get()->toArray(); 

     //work on the export 
     Excel::create($nm_perusahaan, function($excel) use ($users){ 
      $excel->sheet('sheet 1', function($sheet) use ($users) 
      { 
       $sheet->fromArray($users); 
       ob_end_clean(); 
      }); 
     })->download('xlsx'); 
     return redirect('/beasiswaditerima'); 
    }else{ 
     return redirect('/home'); 
    } 
} 

出力指定された配列キー。この自動生成を無効にするには、を5番目のパラメータ($headingGeneration)に渡す必要があります。ここにあなたの参考のためfromArray()メソッドシグネチャを示します:

public function fromArray($source = null, $nullValue = null, $startCell = 'A1', $strictNullComparison = false, $headingGeneration = true) 

カスタム見出しを追加するrow()メソッドを使用することができます。あなたのコードの例を使用して、今のコードは次のようになります。

$users = Mstbeasiswa::select('NO_ANGGOTA', 'NM_ANGGOTA', 'GOLONGAN', 'NPK', 'CABANG', 'NM_ANAK', 'NM_SKL', 'id') 
    ->where('flag_terima', '1') 
    ->where('NM_PERUSAHAAN', $nm_perusahaan) 
    ->orderBy('id', 'asc') 
    ->get() 
    ->toArray(); 

Excel::create($nm_perusahaan, function ($excel) use ($users) { 
    $excel->sheet('sheet 1', function ($sheet) use ($users) { 
     // Set your custom header. 
     $sheet->row(1, ['COL1', 'COL2', 'COL3', 'COL4', 'COL5', 'COL6', 'COL7', 'COL8']); 

     // Set the data starting from cell A2 without heading auto-generation. 
     $sheet->fromArray($users, null, 'A2', false, false); 
    }); 
})->download('xlsx'); 

それとも、実際にはfromArray()メソッドの呼び出しを保つが、後でそのようなrow()方法で自動生成されたヘッダを置き換えることができます。

$excel->sheet('sheet 1', function ($sheet) use ($users) { 
    $sheet->fromArray($users); 

    // Replace the header, but this should come after fromArray(). 
    $sheet->row(1, ['COL1', 'COL2', 'COL3', 'COL4', 'COL5', 'COL6', 'COL7', 'COL8']); 
}); 

願っています!