initial commit
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
# 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.
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user