调用未定义的方法Maatwebsite \ Excel \ Excel :: create()laravel-5.8

时间:2019-06-19 11:16:50

标签: laravel eloquent laravel-5.8

他试图以excel格式下载数据库数据,但是当我单击下载时,它说:调用未定义的方法Maatwebsite \ Excel \ Excel :: create()

控制器代码:

    function excel()
{
 $pdf_data = DB::table('importpdfs')->get()->toArray();
 $pdf_array[] = array('Battery', 'No_of_questions_attempted', 'SAS', 'NPR', 'ST', 'GR');
 foreach($pdf_data as $pdf)
 {
  $pdf_array[] = array(
   'Battery'  => $pdf->Battery,
   'No_of_questions_attempted'   => $pdf->No_of_questions_attempted,
   'SAS'    => $pdf->SAS,
   'NPR'  => $pdf->NPR,
   'ST'   => $pdf->ST,
   'GR'   => $pdf->GR
  );
 }
 Excel::create('Pdf Data', function($excel) use ($pdf_array){
  $excel->setTitle('Pdf Data');
  $excel->sheet('Pdf Data', function($sheet) use ($pdf_array){
   $sheet->fromArray($pdf_array, null, 'A1', false, false);
  });
 })->download('xlsx');
}

3 个答案:

答案 0 :(得分:1)

如果您先前将"maatwebsite/excel"软件包更新为3. *。版本,方法Excel::create($yourExport)被删除。相反,您应该使用Excel::download/Excel::store($yourExport)

示例如何与新版本一起使用:

use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;
use App\Http\Controllers\Controller;

class UsersController extends Controller 
{
    public function export() 
    {
        return Excel::download(new UsersExport, 'users.xlsx');
    }
}

UsersExport是使用make:export命令创建的新类。

UsersExport.php:

<?php

namespace App\Exports;

use App\User;
use Maatwebsite\Excel\Concerns\FromCollection;

class UsersExport implements FromCollection
{
    public function collection()
    {
        return User::all();
    }
}

在这里您可以找到官方Upgrade guide的新版本。

答案 1 :(得分:0)

您可能没有使用Facade并直接使用文件,请确保使用

use Maatwebsite\Excel\Facades\Excel;

而不是

use Maatwebsite\Excel\Excel;

答案 2 :(得分:0)

使用3.0版本df = new_df[new_df.groupby(level=0)['col3'].transform('size').ne(1)] 删除了create方法。

来自upgrade guide

  

Excel :: create()被删除并替换为   Excel :: download / Excel :: store($ yourExport)

我会使用他们文档中的quickstart guide