sheet('Sheetname', function ($sheet) { $head = ['商品ID','商品名称','成本价','销售价','市场价','销量','库存','销售分公司','状态','开团时间','截团时间','创建时间', '最后更新时间']; $body = ['id','name','cost_price','price','original_price','sales','stock','companies','status','activity_begined_at','activity_ended_at','created_at', 'updated_at']; $bodyRows = collect($this->getData())->map(function ($item)use($body) { foreach ($body as $keyName){ switch ($keyName) { case 'status' : switch (array_get($item, $keyName)) { case 0: $arr[] = '审核中'; break; case 1: $arr[] = '上架'; break; case -1: $arr[] = '下架'; break; default: $arr[] = '未知状态'; break; } break; case 'companies' : $companies = array_get($item, 'companies'); $arr[] = count($companies) > 0 ? implode('/', array_column($companies,'name')) : ''; break; default: $arr[] = array_get($item, $keyName); break; } } return $arr; }); $rows = collect([$head])->merge($bodyRows); $sheet->rows($rows); }); })->export('xlsx'); } }