使用Laravel 5.4导出CSV / XLSX

时间:2017-07-28 08:23:20

标签: php excel laravel export laravel-5.4

我的帖子太长了但请帮助我!

我尝试将数据从数据库导出到CSV文件,但我遇到了两个问题:

1。更新:我通过将CSV更改为XLSX来解决此问题。

2。如何在eloquent中获取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

1 个答案:

答案 0 :(得分:1)

.csv文件非常简单。它只是用逗号或其他分隔符分隔的一些数据。因此,它不能有多张纸。如果您导出为.xlsx,它应该可以工作。

对于标题的名称,我建议你急于加载标题,然后将结果处理成一个数组。