如何解决在 Laravel 8 中下载数据库的 Excel 电子表格
我有一个按钮,当按下它时,它应该以 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');
});
解决方法
我认为分页集合不起作用。尝试改用 get()
:
public function export()
{
$energy = Energy::orderBy('energyid','desc')->get();
return Excel::download($energy,'users.xlsx');
}
,
public function export()
{
$energy = Energy::orderBy('energyid','users.xlsx');
}
这是因为您需要传递一个专用的 Export 对象,而不仅仅是一个集合 (Here you can check it how)。您也可以考虑 exporting from query 而不是来自集合。
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');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。