最近需求要用到PHPExcel,laravel框架中有相应的组件https://github.com/Maatwebsite/Laravel-Excel,我用的是2.1的(3.0文档不详细而且坑似乎也挺多)。
我遇到的需求是这样子的,前端上传一个xlsx文件给我,然后我需要解析其中内容并存入数据库;官网和其他论坛对于这个组件import file的方法都太简单,都是Excel::load('path')来将Excel文件实例化,若我也为load传一个path来载入Excel的话,未免太麻烦,因为我觉得前端传Excel文件给我的时候,已经有我所需全部数据了,我没必要再将其存起来就仅仅为了得到那个path。
上传文件在laravel的 Request $request->file()中,是UploadedFile类的一个对象, 所以前端传给我的Excel也是UploadedFile的一个对象,我尝试将这个对象直接传入Excel::load()中,结果是可以载入并解析的(即得到一个reader对象,以获取Excel文件中的数据)。但是Laravel-Excel手册上只说load()一个路径,所以在这我想说一下,load()不仅可以load一个url,也可以load一个由Excel文件衍生的对象。