Für einen Kunden habe ich Module entwickelt, in denen die dargestellten Daten als CSV exportiert werden könnne. Ursprünglich für TYPO3 8 entwickelt, wurden die Module in den letzten Jahren mehrfach aktualisiert, im Moment für TYPO3 11.
Ein Export in einem Backend-Modul kann wie folgt implementiert werden:
public function exportContactListAction(): ResponseInterface { $records = $this->recordRepository->findAll(); $filename = 'records_list' . '_' . date('Y-m-d') . '.csv'; $export = $this->createExport($records); $response = $this->responseFactory->createResponse() ->withHeader('Content-Type', 'application/octet-stream') ->withHeader('Content-Length', (string)strlen($export)) ->withHeader('Content-Disposition', 'attachment; filename=' . PathUtility::basename($filename)); $response->getBody()->write($export); return $response; }
In der Funktion createExport
kann ein beliebiger Content generiert werden. Als praktisch hat sich für mich folgende Funktion erwiesen:
CsvUtility::csvValues($dataRow, ';') . "\n";
Man packt die zu exportierenden Daten in ein Array und macht ein Csv daraus.
Neueste Kommentare