# Auswertung Automationskalkulation

Dieses Repository enthält ein Python-Skript zur automatisierten Auswertung von Excel-Dateien. Die Verarbeitung erfolgt entweder über einen Input-Ordner oder durch Übergabe einzelner Dateien per Kommandozeile.

---

## Projektstruktur

```text

.
├── src/
│   └── main.py
├── input/
│   └── Excel-Dateien zur Verarbeitung
├── output/
│   └── erzeugte Ergebnisdateien
├── config/
│   └── config.json
├── run.bat
└── README.md

```

---

## Voraussetzungen

- Python 3.9 oder höher
- Abhängigkeiten:
  - pandas
  - openpyxl

Installation der Abhängigkeiten:

```text

pip install pandas openpyxl

```

---

## Nutzung

### Variante 1: Verarbeitung über Input-Ordner

1. Excel-Dateien in das Verzeichnis `input/` legen
2. `run.bat` ausführen

Alle Dateien im Input-Ordner werden verarbeitet.

---

### Variante 2: Verarbeitung einzelner Dateien

Excel-Dateien auf `run.bat` ziehen.

Nur die übergebenen Dateien werden verarbeitet.

---

## Ausgabe

Die Ergebnisdateien werden im Verzeichnis `output/` gespeichert.

Der Dateiname hat folgendes Format:

```text

{inputname}*auswertung*{timestamp}.xlsx

```

Inhalt der Ausgabe:

- aggregierte Stunden pro Sivas:AG
- Detailaufstellungen je Eintrag
- zusätzliche Werte aus der ersten Datei

---

## Konfiguration

Die Datei `config/config.json` enthält Konfigurationsparameter.

Beispiel:

```json
{
  "merge_groups": [
    ["25", "26"],
    ["47/101", "50/111"]
  ]
}
```

Die definierten Sivas-Arbeitsgänge werden bei der Zusammenführung von Schlüsseln berücksichtigt. Dabei werden alle Zeilen mit gleichen Werten der Spalte D ("Sivas:AG") zusammengeführt.

Beispiel:

- ["25", "26"]: "Montage Elektrisch/Inbetriebnahmetest Hardware durch Montage" (Sivas AG 25) und "Maschinentest/Inbetriebnahmeunterstützung durch Montage" (Sivas AG 26)
- ["47/101", "50/111"]: "SPS-Inbetriebsetzung" (Sivas AG 47/101) und "PC-Inbetriebsetzung" (Sivas AG 50/111)

---

## Verarbeitungslogik

Das Skript verarbeitet definierte Zellbereiche aus Excel-Dateien:

- Zeilen 28 bis 56
- Spalte D: Schlüssel (Sivas:AG)
- Spalte F: Stunden
- Spalte A: Beschreibung

Die Stundenwerte werden gerundet und pro Schlüssel aggregiert.

---

## Fehlerquellen

Keine Ausgabe oder leere Verarbeitung kann folgende Ursachen haben:

- Input-Verzeichnis ist leer
- keine gültigen Excel-Dateien vorhanden
- temporäre Excel-Dateien (`~$...`) werden ignoriert
- falsches Arbeitsverzeichnis beim Start

---

## Ausführungsvoraussetzung im Skript

Die Datei `main.py` muss folgenden Einstiegspunkt enthalten:

```python
if __name__ == "__main__":
    main()
```

---

## Hinweis

Das Skript ist für die Batch-Verarbeitung von Dateien vorgesehen und verfügt über keine grafische Oberfläche.

---
