0; function h(mixed $value): string { return htmlspecialchars((string) ($value ?? ''), ENT_QUOTES, 'UTF-8'); } function flashClasses(?array $flash): string { $type = (string) ($flash['type'] ?? 'info'); return match ($type) { 'success' => 'border-emerald-200 bg-emerald-50 text-emerald-900', 'danger' => 'border-rose-200 bg-rose-50 text-rose-900', 'warning' => 'border-amber-200 bg-amber-50 text-amber-900', default => 'border-sky-200 bg-sky-50 text-sky-900', }; } ?>
Browse the latest imported batch with server-side search, sorting, and column filters.
= $hasData ? 'AG Grid streams rows from the server and applies column filters without loading the whole batch into memory.' : 'No imported data yet. Upload a workbook to populate the grid.' ?>
Choose an Excel workbook and run the import to display the latest processed rows here.