39d3ee8bafcc622ea1cba83939522ef2b9082d99
Tätigkeitsnachweis-Generator
Streamlit-App zur automatisierten Erstellung von Tätigkeitsnachweisen aus Excel-Daten.
Setup
- Python 3.9+ installieren (falls nicht vorhanden): https://python.org
- Virtuelle Umgebung erstellen und Abhängigkeiten installieren:
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt
- App starten:
streamlit run app.py
Oder einfach start.bat (Windows) bzw. ./start.sh (macOS/Linux) ausführen.
Bedienung
- Input-Datei wählen – Dropdown zeigt alle
.xlsx-Dateien aus deminput/-Ordner- Nach Auswahl wird die Datei sofort validiert
- Angezeigt werden: Anzahl Mitarbeiter, Antragsnummern, Einträge pro Monat
- Template wählen – Dropdown zeigt alle
.xlsx-Dateien aus demtemplate/-Ordner- Nach Auswahl wird das Template sofort validiert
- Angezeigt wird: Anzahl gefundener Zielfelder
- Mitarbeiter auswählen – Multiselect-Liste aller gefundenen Mitarbeiter
- Standardmäßig sind alle ausgewählt
- Nicht selektierte Mitarbeiter werden bei der Generierung übersprungen
- "Tätigkeitsnachweise generieren" klicken
- Die generierten Dateien werden im
output/-Ordner abgelegt
- Die generierten Dateien werden im
Konfiguration
Alle Einstellungen liegen im config/-Ordner:
settings.ini
[paths]– Ordner für Input, Template, Output[output]– Dateinamen-Pattern ({first_name},{last_name})[parsing]– Monats-Sheet-Erkennung, Leerzeilen-Verhalten
input-fields.json
Definiert die Spalten der Input-Tabelle:
column: Spaltenbuchstabe (A, B, C…)field_name: Exakte Spaltenüberschrift aus der Excel-Dateitype:stringodernumberrequired:trueoderfalse
output-fields.json
Mapping von Input-Feldern auf Template-Zellen:
source_field: Exakte Spaltenüberschrift ausinput-fields.jsontarget_cell: Zelladresse im Template (z. B."C16")format: Optionaler Format-String (z. B."%.2f"für Prozentwerte)
Erwartetes Input-Format
- Eine
.xlsx-Datei mit einem Sheet pro Monat (z. B. "Januar 2025", "Februar 2025", …) - Jedes Sheet hat in Zeile 1 die Spaltenüberschriften (laut
input-fields.json) - Daten beginnen ab Zeile 2
- Jede Zeile entspricht einer Mitarbeiter-Funktion-Kombination für diesen Monat
Output
- Pro selektiertem Mitarbeiter wird eine
.xlsx-Datei erstellt - Jeder Monat wird als eigenes Sheet (Kopie des Templates) eingefügt
- Dateiname:
{Nachname}_{Vorname}_Tätigkeitsnachweis.xlsx
Languages
Python
92.9%
Batchfile
4.1%
Shell
3%