You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel使用Maatwebsite Excel从数组导出Excel返回空文件如何解决?

问题原因
  • 自定义导出类未实现类库要求的对应契约:Maatwebsite Excel v3及以上版本,从数组生成Excel的导出类必须实现Maatwebsite\Excel\Concerns\FromArray接口,否则类库无法识别数据源读取规则。
  • 传参时多嵌套了一层数组:你定义的$ex本身就是符合要求的二维数组,new TestExport([$ex])的写法把数据源变成了三维数组,结构不匹配导致无法读取内容。
修复步骤
  1. 修改TestExport类,引入并实现FromArray接口:
use Maatwebsite\Excel\Concerns\FromArray;

class TestExport implements FromArray
{
    protected $arrays;

    public function __construct(array $arrays)
    {
        $this->arrays = $arrays;
    }

    public function array(): array
    {
        return $this->arrays;
    }
}
  1. 修改业务代码中实例化导出类的逻辑,去掉多余的数组包裹:
use Maatwebsite\Excel\Facades\Excel;

$ex = [
    ['one', 'name'],
    ['two', 'family']
];
// 移除$ex外层的多余数组包裹
return Excel::download(new TestExport($ex), 'test.xlsx');

修改完成后重新触发导出逻辑,即可正常生成带内容的Excel文件。

内容的提问来源于stack exchange,提问作者Rez Mohsnei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:54:05