Laravel 5.2使用maatwebsite/excel ~2.1.0读取Xlsx文件返回空数据求助
Laravel 5.2 + maatwebsite/excel ~2.1.0读取Xlsx返回空的解决思路
排查方向与解决步骤
1. 验证文件路径与权限
先确认$filePathNew是绝对路径,且服务器进程具备该文件的读取权限。可以通过以下代码验证:
if (!file_exists($filePathNew)) { dd('文件不存在'); } if (!is_readable($filePathNew)) { dd('无文件读取权限'); }
2. 修正代码逻辑
你原代码中连续调用get()和all()属于冗余操作,且2.1版本中需注意读取器的调用方式。如果文件包含多个工作表,需明确指定目标表:
Excel::load($filePathNew, function($reader) { // 读取第一个工作表的数据(索引从0开始) $reader->sheet(0, function($sheet) { $results = $sheet->all(); dd($results); }); });
或者直接获取所有工作表数据:
Excel::load($filePathNew, function($reader) { $allData = $reader->get(); dd($allData); });
3. 检查文件格式与内容
确保Xlsx文件非空,且数据格式符合读取要求:
- 确认第一行是表头(扩展包默认将第一行识别为字段名)
- 文件未损坏,可手动打开验证数据存在
4. 确认依赖环境
maatwebsite/excel ~2.1.0依赖PHPExcel,需确保:
- vendor目录下存在
phpoffice/phpexcel(可通过composer install重新安装依赖) - PHP已开启
zip扩展(读取Xlsx格式必须依赖该扩展)
内容的提问来源于stack exchange,提问作者Loganathan Shanmugam
相关产品推荐
相关产品推荐

