public static function downloadSample($model, $config = null) { $import = new Import($model, $config); $data = $import->model->find(); $header = []; $sample = []; $modelCols = $import->model->tableSchema->columns; foreach ($import->columns as $key => $col) { $col = is_string($col) ? ['type' => $col] : $col; switch ($col['type']) { case "pk": case "default": $header[] = $key; if (isset($col['sample'])) { $sample[] = $col['sample']; } else { if (isset($modelCols[$key])) { if ($col['type'] == 'pk') { $sample[] = ''; } else { if (isset($data)) { $sample[] = $data->{$key}; } else { $sample[] = Export::getSampleText($modelCols[$key]); } } } else { $sample[] = "text"; } } break; case "lookup": if (@$col['show'] !== false) { $header[] = $key; if (isset($col['sample'])) { $sample[] = $col['sample']; } else { $sample[] = 'text'; } } break; } } $writer = WriterFactory::create(Type::XLSX); $writer->openToBrowser("import-" . Helper::camelToSnake($model) . '.xlsx'); // stream data directly to the browser $writer->addRows([$header, $sample]); // add multiple rows at a time $writer->close(); }