问题描述
我在laravel 7项目中使用maatwebsite软件包下载xlsx格式的数据表单数据库。 (参考链接:https://www.itsolutionstuff.com/post/laravel-6-import-export-excel-csv-file-tutorialexample.html) 但是我点击了导出按钮,正在下载一个没有任何数据的空文件。
控制器:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use DB;
class ExcelController extends Controller
{
public function export()
{
$user=DB::table('admin')->get();
return Excel::download($user,'users.xlsx');
}
}
blade.php:
<a class="btn btn-warning" href="{{ route('export') }}">Export User Data</a>
路线:
Route::get('export','ExcelController@export')->name('export');
这只是下载一个空文件,如何以xlsx格式获取管理表的所有数据
解决方法
- 考虑您已经创建了
--model
模型,然后创建Export Class(在App\Admin
参数中传递模型)。
php artisan make:export AdminsExport --model=Admin
- 写出口类:
<?php
namespace App\Exports;
use App\Admin;
use Maatwebsite\Excel\Concerns\FromCollection;
class AdminsExport implements FromCollection
{
public function collection()
{
return Admin::all();
}
}
- 将此代码写到您的控制器文件中
return Excel::download(new AdminsExport,'admins.xlsx');
,
以下是您使用maatwebsite
包导出数据的示例代码:
web.php
Route::get('export','ExcelController@export')->name('export');
刀片文件
<a class="btn btn-warning" href="{{ route('export') }}">Export User Data</a>
在app/Exports
中创建导出类
您可以使用make:export
命令来完成此操作。
php artisan make:export UsersExport --model=User
您可以使用试图从中下载数据的模型名称或表名称
可以在app/Exports
中以Users Export
的身份找到文件
<?php
namespace App\Exports;
use App\User;
use Maatwebsite\Excel\Concerns\FromCollection;
class UsersExport implements FromCollection
{
public function collection()
{
//add your own code here. below is just a sample code
return User::all();
}
}
在您的控制器中,您可以立即调用此导出:
<?php
namespace App\Http\Controllers;
use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;
class UsersController extends Controller
{
public function export()
{
return Excel::download(new UsersExport,'users.xlsx');
}
}
引用为here