Beschreibung des Problems:
Beim Excel-Export von Datumsfeldern werden die Werte aktuell als Text (String) exportiert, nicht als Datum (Date).
Beispiel: Wird im Event-Modul das Geburtsdatum einer Person exportiert (z. B. über Event → Export), erscheinen die Werte zwar im Format dd.MM.yyyy, sind jedoch in Excel nicht als Datumstyp hinterlegt.
Auswirkungen:
Die Daten können in Excel nicht korrekt nach Datum sortiert oder gefiltert werden.
Datumsfunktionen in Excel (z. B. Differenzberechnungen, Formatierungen) sind nicht ohne Umwandlung nutzbar.
Benutzer müssen die Daten manuell in Datumstypen konvertieren, was fehleranfällig und zeitraubend ist.
Erwartetes Verhalten:
Datumsfelder sollten im Excel-Export als echte Excel-Datumswerte (TYPE = Date) ausgegeben werden, mit entsprechendem Zellenformat dd.MM.yyyy oder einer nutzerfreundlichen Voreinstellung.
Technischer Hintergrund & mögliche Lösung:
In gängigen Excel-Frameworks gibt es dafür Standardlösungen:
Wird Beispielsweie PhpSpreadsheet verwendet, sollte beim Erstellen der Zellen setCellValue() bzw. setCellValueExplicit() mit einem \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel()-Wert und anschließendem getStyle()->getNumberFormat()->setFormatCode('DD.MM.YYYY') genutzt werden. Bei PHPExcel, wäre dies das gleiche Vorgehen, hier dann mit PHPExcel_Shared_Date::PHPToExcel() verwenden. Weitere Informationen zur Behebung des Problem finden sich im Internet oder bei ChatGPT ;-)
Vorschlag zur Behebung:
Sicherstellen, dass Datumswerte nicht als vorformatierte Strings exportiert werden.
Stattdessen echte Datumsobjekte (DateTime, Carbon) übergeben und in der Exportbibliothek als Datumstyp setzen.
Formatierung in
dd.MM.yyyyoder konfigurierbarem Format als Zellformat, nicht als Zellinhalt.
Zusammenfassung:
Aktuell werden Datumsfelder im Export als Text gespeichert, was die Weiterverarbeitung stark einschränkt. Eine Umstellung auf den korrekten Datentyp „Date“ in Excel ist mit den gängigen PHP-Excel-Libraries problemlos möglich und würde den Nutzwert der Exportfunktion erheblich steigern.