【问题标题】:Downloading Excel spreadsheet of database in Laravel 8在 Laravel 8 中下载数据库的 Excel 电子表格
【发布时间】:2021-07-21 11:53:33
【问题描述】:

我有一个按钮,当按下它时,它应该以 excel 格式下载我想要的表格。 excel文档下载,但它是空白的。我该怎么做才能让它下载我的表的内容。

注意:我使用的是 Laravel 8

这是我的代码:

控制器:

use App\Models\Models\Energy;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Facades\Excel;

  public function export() 
    {
        $energy = Energy::orderBy('energyid', 'desc')->paginate(5);
        return Excel::download($energy, 'users.xlsx');
    }

查看按钮:

 <a class="btn btn-warning" href="{{ route('export_excel.excel') }}">Export User Data</a>

路线:

Route::get('/export_excel/excel', 'App\Http\Controllers\Admin\EnergyController@export')->name('export_excel.excel');
});

【问题讨论】:

    标签: php laravel laravel-8 maatwebsite-excel


    【解决方案1】:

    我不认为分页集合会起作用。尝试改用get()

    public function export() 
    {
        $energy = Energy::orderBy('energyid', 'desc')->get();
        return Excel::download($energy, 'users.xlsx');
    }
    

    【讨论】:

    • 它仍然下载一个空白文档
    【解决方案2】:

    public function export() 
    {
        $energy = Energy::orderBy('energyid', 'desc')->get();
        return Excel::download($energy, 'users.xlsx');
    }

    【讨论】:

    • 这也会返回一个空白的 Excel 电子表格。还有其他方法吗?
    【解决方案3】:

    这是因为您需要传递一个专用的导出对象,而不仅仅是一个集合 (Here you can check it how)。你也可以考虑exporting from query而不是来自collecion。

    amespace App\Exports;
    
    use App\Models\Energy;
    use Maatwebsite\Excel\Concerns\FromCollection;
    
    class EnergyExport implements FromCollection
    {
        public function collection()
        {
            return Energy::orderBy('energyid', 'desc')->all();
        }
    }
    
    return Excel::download(new EnergyExport, 'energy.xlsx');
    

    【讨论】:

    • 这会返回一个空白的 Excel 表格
    猜你喜欢
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多