Laravel 将数据导出到 Excel 需要修改的文件

Laravel Export data into Excel file need to be modified

我想从 tables 下载 2 个用户的数据,我想生成该数据的 excel 文件。

这里只有一个数据table的下载函数叫registerdetails

public function export(){
    $items = registerdetails::all();
    Excel::create('General Trainee Details', function($excel) use($items){
        $excel->sheet('Sheet 1', function($sheet) use($items){
            $sheet->fromArray($items);
        });
    })->export('xlsx');
}

我需要修改此控制器 从 registerdetailsbankdetails 获取数据。有谁能帮我解决这个问题吗?

我不确定你想要实现什么。但我希望这对你有所帮助。

您正在使用的 Excel 库(希望它是 maatwebsite/excel 或类似的库)可以使用 Eloquent 查询或查询生成器,如下所示:

public function export($id){

    Excel::create('General Trainee Details', function($excel) use($id){
        $excel->sheet('Sheet 1', function($sheet) use($id){
            $query= registerdetails::select(['registerdetailscolumn_1', 'registerdetailscolumn_2')->leftjoin('bankdetails', 'registerdetailscolumn_id', '=', 'bankdetailscolumn_id')->where(registerdetailscolumn_id, '=', $id);
            $sheet->fromModel($query);
        });
    })->export('xlsx');
}

当然,知道您可以提供并传递任何员工 ID。

您可以在一个 sheet 上导出一个 table,在另一个 sheet 上导出另一个 table,如下所示:

    public function export(){

        Excel::create('General Trainee Details', function($excel) use($id){
            $excel->sheet('Sheet 1', function($sheet){
                $query= registerdetails::all();
                $sheet->fromModel($query);
            });
            $excel->sheet('Sheet 2', function($sheet){
                $query= bankdetails::all();
                $sheet->fromModel($query);
            });
        })->export('xlsx');
    }

试试这个

public function collectionexport_all(){
    $items = registerdetails::join('bankdetails', 'bankdetails.id', '=', 'registerdetails.id')->get();
    $itemsArray = []; 
     foreach ($items as $item) {
        $itemsArray[] = $item->toArray();
    }

    Excel::create('Full Details', function($excel) use($itemsArray){
    $excel->sheet('Sheet 1', function($sheet) use($itemsArray){

        $sheet->fromArray($itemsArray);

    });

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