laravel excel 3.* 的导出简单分享

原因

以前我们都是使用的laravel excel 2.1的,然后我新弄了个项目,我想着使用excel 3.*的试一试吧,然后遇到了一些坑的地方,有好有坏,简单分享下

文档地址laravel-excel3.1

过程

php artisan make:export UsersExport --model=User

第一种方法,很不自在

data = $data;
        $this->headings = $headings;
    }

    //实现FromCollection接口
    public function collection()
    {
    	//文档这个地方是查询的方法,我移动到了外面,其实是一样的道理
        return collect($this->data);
    }

    //实现WithHeadings接口
    public function headings(): array
    {
        return $this->headings;
    }

}

exportApiRecord(); //这个我写的service 写了好多逻辑,读出来的数据
		
	    return Excel::download(new LogExport($data['data'], $data['headings']), $fileName);
	}
}

第二种更加灵活,我是看见了laravel-admin 的代码给我的启发

data = $data;
    }

 protected $columns = [
        'id'                    => 'ID',
        'name'                  => '姓名',
        'status'                => '状态',
    ];

    //实现FromCollection接口
    public function collection()
    {
    	//文档这个地方是查询的方法,我移动到了外面,其实是一样的道理
        return collect($this->data);
    }

    //实现WithHeadings接口
    public function headings(): array
    {
        return $this->columns;
    }

}
    public function map($user) : array
    {
        return [
            $user->id,
            $user->name,
            $user->status ? 'yes' : 'no';           // 字段数据替换
        ];
    }
}

第二种使用的是map 重新整理字段,这样更加灵活,多了字段也不怕

你可能感兴趣的:(laravel)