完成后继续读取Maatwebsite Excel包中的所有行


Continue after finish to read all rows in Maatwebsite Excel package for laravel

我正在使用Laravel 5和Maatwebsite Excel包读取和写入Excel文件,但我不知道究竟如何管理下一个情况

public function readExcel(Request $request){
    $content = [];
    Excel::load('file.xls', function($reader){
        $content = $reader->get();
    });
    // do more somethings and return
    return $content;
}

问题是,当我返回$content时,变量中没有任何内容,我有一个想法,$content具有初始值,Excel::load仍未完成,$content的新值尚未设置。

谢谢。

尝试在类中声明一个变量。例:

class TestController extends Controller {
   public $content = [];
   public function readExcel(Request $request){
    Excel::load('file.xls', function($reader){
        $this->content = $reader->get();
    });
    // do more somethings and return
    return $this->content;
}
}

另一种方式:

public function readExcel(Request $request){
    $excel = Excel::load('file.xls', function($reader){
        $content = $reader->get();
    });
    dd($excel->get());
}

您没有返回闭包的内容。试试这个:

public function readExcel(Request $request)
{
    $content = Excel::load('file.xls', function($reader) {
        return $reader->get();
    });
    // do more somethings and return
    return $content;
}