2017-07-28 144 views
0

我的帖子太長,但請幫幫我!使用Laravel導出CSV/XLSX 5.4

我試圖將數據從數據庫到CSV文件導出,但我有2個問題:

1.更新:我解決它通過改變CSV到XLSX。

2.如何獲得title_name的口頭表達?我試過了,但沒有奏效。

$title_japan = TitleJapan::select('id','name',$this->title->name)->get(); 

這裏是我的TitleJapan型號:

class TitleJapan extends Model 
{ 
    public function title() 
    { 
     return $this->belongsTo('App\Title'); 
    } 
} 

這裏是我的標題型號:

class Title extends Model 
{ 
    public function titleJapan() 
    { 
     return $this->hasMany('App\TitleJapan'); 
    } 

} 

我的控制器:

class ExportController extends Controller 
{ 
    public function index() 
    { 
     return view('Export.index'); 
    } 

    public function exportTitleCSV() 
    { 
     $title = Title::all(); 
     $title_japan = TitleJapan::select('id','name',$this->title->name)->get(); 

     return Excel::create('Filename', function($excel) use ($title,$title_japan,$title_oversea) { 

      $excel->setTitle('TitleBandai'); 
      $excel->sheet('FirstSheet', function($sheet) use($title_japan) { 
       $sheet->fromArray($title_japan); 
      }); 
      $excel->sheet('SecondSheet', function($sheet) use($title_oversea) { 
       $sheet->fromArray($title_oversea); 
      }); 

     })->export('csv'); 
    } 
} 

文件CSV我

enter image description here

文件CSV我想

enter image description here

+0

首先我會嘗試導出爲'xls'或'xlsx' csv只是一個文本文件,不會理解多張紙 – RiggsFolly

+0

csv文件不能有張紙。這只是優秀的 –

+0

非常感謝你們,我解決了它! –

回答

1

一個.csv文件,是非常簡單的。這只是一些由逗號或其他分隔符分隔的數據。因此,它不能有多個工作表。如果你導出爲.xlsx,它應該可以工作。

對於標題的名稱,我建議你急切地加載標題,然後將結果處理成一個數組。