147 lines
2.8 KiB
Markdown
147 lines
2.8 KiB
Markdown
# 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.
|
|
|
|
---
|