data = $data; } public function registerEvents(): array { //这边处理数据格式 //关于表单的合并 $params = isset($this->data['params']) ?? []; $style = [ AfterSheet::class => function (AfterSheet $event) use($params) { $count = count($this->data['data']); //设置区域单元格水平居中 $event->sheet->getDelegate()->getStyle('A1:'.'BZ'.($count+1))->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER); //合并相关 if(isset($params['merge'])){ $merge = $params['merge']; $event->sheet->getDelegate()->setMergeCells($merge); } }, ]; return $style; } //数组转集合 public function collection() { return new Collection($this->createData()); } //业务代码 public function createData() { $data = $this->export(); return $data; } private function export(){ // var_dump($this->data);die; $data = $this->data['data']; $list = []; foreach ($data as $v){ $list[] = $v; } return $list; } }