【问题标题】:Laravel excel: Excel::create equivalentLaravel excel:Excel::create 等价物
【发布时间】:2019-12-22 04:01:05
【问题描述】:
我正在尝试使用这个组件,我已经将它从 2.1 更新到 3.1,我的导出现在被破坏了方法 create 在这个新版本中不存在,或者我在文档中遗漏了一些东西。
Excel::create()
Call to undefined method Maatwebsite\Excel\Excel::create()
【问题讨论】:
标签:
php
laravel
laravel-5
eloquent
laravel-excel
【解决方案1】:
这里是文档https://docs.laravel-excel.com/3.1/exports/
您必须在 de 文件夹中创建一个导出类:
应用程序/出口/
使用这个命令:
php artisan make:export UsersExport --model=User
将创建文件 UsersExport.php
namespace App\Exports;
use App\User;
use Maatwebsite\Excel\Concerns\FromCollection;
class UsersExport implements FromCollection
{
public function collection()
{
return User::all();
}
}
在你的控制器中
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');
}
}
在你的路线中
Route::get('users/export/', 'UsersController@export');
【解决方案2】:
使用 laravel 插件在 excel 中导出数据
Excel::create('filename', function($excel) use ($data){
$excel->sheet('filename', function($sheet) use ($data){
$sheet->fromArray($data, null, 'A1', false, false);
$sheet->cell('A1:Z1', function ($cells) {
$cells->setFontWeight('bold');
});
$sheet->setWidth('A', 5);
$sheet->cell('A1:A', function($cells) {
$cells->setAlignment('center');
});
});
})->download('xlsx');