Teamprojekt · Station 9 von 10
ROBIN
Ein Werkzeug, das Excel-Teilnehmerlisten in eine PostgreSQL-Datenbank überträgt. Teamprojekt zu zweit.

Ziel
Teilnehmerdaten aus Excel zuverlässig und ohne Handarbeit in die Datenbank bringen.
Umsetzung
- Mein Teil war das Backend: Excel-Dateien einlesen, die Daten aufbereiten und in die Datenbank schreiben.
- Verbindung zu PostgreSQL über einen SSH-Tunnel, mit Konfiguration, Fehlerbehandlung und Protokoll.
- Die Oberfläche (Import, Vorschau, Export, Animationen) hat mein Teampartner gebaut.
Code
Die Kopfzeile der Excel-Datei finden
def _find_header_and_indices(self, raw_rows: List[List[Any]]) -> Tuple[int, Dict[str, int]]:
for i, row in enumerate(raw_rows[:50]):
cleaned_row = [str(cell).strip() if cell is not None else "" for cell in row]
if "Vorname" in cleaned_row and "Name" in cleaned_row:
try:
return i, {
"reha": cleaned_row.index("TN-Nr"),
"last_name": cleaned_row.index("Name"),
"first_name": cleaned_row.index("Vorname"),
"email": cleaned_row.index("Email2"),
"specialization": cleaned_row.index("Massnahme Nr"),
"course": cleaned_row.index("Ausbildungsgruppe")
}
except ValueError as e:
raise ValueError(f"Fehler 102|Zeile {i + 1}")
raise ValueError("Fehler 102")Das Backend sucht in den ersten 50 Zeilen die Spalten und meldet fehlende mit Fehlercode und Zeile.
Was ich gelernt habe
Im Team Schnittstellen abzustimmen: Das Backend muss so klar sein, dass die Oberfläche es ohne Rückfragen nutzen kann.