dataList = $dataList; $this->headerMap = $headerMap; $this->afterSheetStyle = $afterSheetStyle; $this->columnFormats = $columnFormats; } /** * 注册事件 * @return array */ public function registerEvents(): array { return $this->afterSheetStyle; } /** * 映射数据行 * @param mixed $row * @return array */ public function map($row): array { $o = []; foreach ($this->headerMap as $k => $v) { if (isset($row[$k])) { if ($row[$k] !== null && $row[$k] === 0) { $row[$k] = '0'; } else if ($row[$k] === null) { $row[$k] = ''; } } else { $row[$k] = ''; } $o[] = $row[$k]; } return $o; } /** * 返回头部 * @return array */ public function headings(): array { return array_values($this->headerMap); } /** * 数据源 * @return array */ public function array(): array { return $this->dataList; } public function columnFormats(): array { return $this->columnFormats; } }