opnform/app/Exports/FormSubmissionExport.php

41 lines
984 B
PHP

<?php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
class FormSubmissionExport implements FromArray, WithHeadingRow
{
protected array $submissionData;
public function __construct(array $submissionData)
{
$headingRow = [];
$contentRow = [];
foreach ($submissionData as $i => $row) {
if ($i == 0) {
$headingRow[] = $this->cleanColumnNames(array_keys($row));
}
$contentRow[] = array_values($row);
}
$this->submissionData = [
$headingRow,
$contentRow,
];
}
private function cleanColumnNames(array $columnNames): array
{
return collect($columnNames)->map(function ($columnName) {
return preg_replace('/\s\(.*\)/', '', $columnName);
})->toArray();
}
public function array(): array
{
return $this->submissionData;
}
}