2016-06-22 23 views
0

私のプロジェクトでエクスポートデータをExcelに書きたいと思っていますが、結果を確認した後に結果が得られません。ここでタイトルテーブルがあります。LaravelでデータをExcelにエクスポート

このコードで私のコントローラ:

public function getExport(){ 
     Excel::create('Export data', function($excel) { 

     $excel->sheet('Sheet 1', function($sheet) { 

      $products=DB::table('log_patrols') 
      ->join("cms_companies","cms_companies.id","=","log_patrols.id_cms_companies") 
      ->join("securities","securities.id","=","log_patrols.id_securities") 
      ->select("log_patrols.*","cms_companies.name as nama_companies","securities.name as nama_security") 
      ->get(); 
       foreach($products as $product) { 
       $data[] = array(
        $product->date_start, 
        $product->date_end, 
        $product->condition_status, 
        $product->nama_security, 
        $product->nama_companies, 
       ); 
      } 
      $sheet->fromArray($data); 
     }); 
    })->export('xls'); 
    } 

この私の問題の結果: result

、それは次のようになります。

should

私の問題は、ヘッダーテーブルで何をテキストに変換するかです。

私の目標を達成するためにコードにどのような改善が必要ですか?

NB:私は公式docsから

答えて

3

エクセルmaatwebsite /を使用します。

デフォルトでは、輸出が(最初の行としてお使いのアレイ(またはモデル 属性名)のキーを使用しますヘッダー列)。

変更:

$sheet->fromArray($data);$sheet->fromArray($data, null, 'A1', false, false);

にこの 動作を変更するには、 第五パラメータとして偽のデフォルト (エクセル:: export.generate_heading_by_indices)を設定するconfigまたは パスを編集することができます

ヘッダーテーブルで何を入力するかをテキストに変更する方法。

次に、独自の見出しを定義し、シートの最初の行の先頭に追加することができます。

$headings = array('date start', 'date end', 'status condition', 'security', 'company'); 

$sheet->prependRow(1, $headings); 

これでうまくいくはずです。

+0

ああ、それは私を助けます。多分私はボーダーテーブルを作りたいと思うようなスタイルの結果を作ることができますか? –

+0

ボーダースタイリングについては、[シートスタイリングガイド](http://www.maatwebsite.nl/laravel-excel/docs/export#sheet-styling)および[リファレンスガイド](http://www.maatwebsite.nl/laravel-excel/docs/export#sheet-styling)を参照してください。 maatwebsite.nl/laravel-excel/docs/reference-guide#borders)を使用して、使用可能な枠線スタイルを表示します。 –

+0

また、これがあなたの質問を解決した場合、これを答えとして記入することができますか... :) –

関連する問題