使用 Laravel 5.4 导出 CSV/XLSX

Export CSV/XLSX using Laravel 5.4

我的 post 太长了,但请帮助我!

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

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 文件

我想要的文件 CSV

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

标题的名字,建议先加载标题再处理成数组。