结束行] * $columnName 需要合并列 与合并行数结合使用ARRAY存储 ['A','B'] */ public function __construct($row,$data,$mergeCell=null,$columnName=null,$formatNumber=['D','H','I','L','O','Q','S','T','U','V']) { $this->row = $row; $this->data = $data; $this->mergeCell = $mergeCell; $this->columnName = $columnName; $this->formatNumber = $formatNumber; } public function collection() { $row = $this->row; $data = $this->data; //设置表头 foreach ($row[0] as $key => $value) { $key_arr[] = $key; } //输入数据 foreach ($data as $key => &$value) { $js = []; for ($i=0; $i < count($key_arr); $i++) { $js = array_merge($js,[ $key_arr[$i] => $value[ $key_arr[$i] ] ]); } array_push($row, $js); unset($val); } return collect($row); } public function registerEvents(): array { if ($this->mergeCell && $this->columnName){ return [ AfterSheet::class => function(AfterSheet $event){ foreach ($this->columnName as $column){ foreach ($this->mergeCell as $key=>$value){ $event->sheet->getDelegate()->mergeCells($column.$key.':'.$column.$value); } } } ]; } return []; } public function columnFormats(): array{ $formatNumber = []; foreach ($this->formatNumber as $column){ $formatNumber[$column] = NumberFormat::FORMAT_TEXT; } return $formatNumber; } }