csv-processor/README.md

218 lines
5.3 KiB
Markdown

# CSV-Processor v2.0
Professionelles Werkzeug zur Verarbeitung und Konvertierung von CSV- und Excel-Dateien.
## Features
**Import** von CSV, Excel (XLSX/XLS)
**Export** als CSV, Excel (XLSX), OpenDocument (ODS)
**Spaltennamen-Mapping** (z.B. "btr" → "Betrag")
**Datenbereinigung** (leere Zeilen/Spalten entfernen)
**Spaltenauswahl** (nur gewünschte Spalten exportieren)
**Sortierung** nach beliebigen Spalten
**Voreinstellungen** für wiederkehrende Aufgaben
## Programmversionen
### CLI-Version (Terminal)
- **Für wen:** Fortgeschrittene Benutzer, Automatisierung
- **Vorteile:** Schnell, scriptfähig, volle Kontrolle
- **Datei:** `csv_processor.py`
### GUI-Version (Grafisch)
- **Für wen:** Alle Benutzer, besonders Einsteiger
- **Vorteile:** Intuitiv, visuelle Vorschau, einfache Bedienung
- **Datei:** `csv_processor_gui.py`
## Systemanforderungen
- Python 3.7 oder höher
- Tkinter (für GUI-Version, normalerweise in Python enthalten)
- Optional: openpyxl (für Excel-Support)
- Optional: odfpy (für ODS-Support)
## Installation
### Option 1: Debian-Paket (.deb)
Für Debian/Ubuntu-basierte Systeme steht ein fertiges Paket bereit:
```bash
sudo dpkg -i dist/csv-processor-debian.deb
```
Nach der Installation:
- CLI-Version: `csv-processor-cli`
- GUI-Version: `csv-processor-gui` oder über Anwendungsmenü
### Option 2: Direkt mit Python ausführen
```bash
# Abhängigkeiten installieren
pip install -r requirements.txt
# CLI-Version starten
python csv_processor.py
# GUI-Version starten
python csv_processor_gui.py
```
## Nutzung
### CLI-Version
```bash
python csv_processor.py
```
Sie sehen das Hauptmenü:
```
╔════════════════════════════════════════════════════════════════╗
║ CSV-PROCESSOR v2.0 - Dateiverarbeitung ║
╚════════════════════════════════════════════════════════════════╝
1. Neue Datei verarbeiten
2. Voreinstellungen verwalten
0. Beenden
```
**Schritt-für-Schritt:**
1. Quelldatei auswählen (CSV oder Excel)
2. CSV-Einstellungen konfigurieren (Encoding, Delimiter)
3. Optional: Mapping-Datei für Spaltennamen laden
4. Leere Zeilen/Spalten entfernen
5. Spalten auswählen
6. Optional: Sortierung, Kopf-/Fußzeile
7. Ausgabeformat wählen und speichern
8. Optional: Als Voreinstellung speichern
### GUI-Version
```bash
python csv_processor_gui.py
```
1. **Datei laden:** Klick auf [Durchsuchen] und Datei auswählen
2. **Einstellungen:** Checkboxen für Kopfzeile, leere Zeilen/Spalten
3. **Spalten:** Im Bereich "Spaltenauswahl" gewünschte Spalten markieren
4. **Vorschau:** Optional [Vorschau] klicken
5. **Speichern:** [Verarbeiten & Speichern] klicken
### Spaltenauswahl (CLI)
| Eingabe | Bedeutung |
|---------|-------------------------------|
| `q` | Fertig |
| `alle` | Alle auswählen |
| `keine` | Alle abwählen |
| `3` | Spalte 3 umschalten |
| `1,2,3` | Spalten 1,2,3 umschalten |
| `+5` | Spalte 5 ANwählen |
| `-5` | Spalte 5 ABwählen |
| `1-10` | Spalten 1-10 umschalten |
| `+1-10` | Spalten 1-10 ANwählen |
| `-1-10` | Spalten 1-10 ABwählen |
## Mapping-Dateien
Mapping-Dateien übersetzen technische Spaltennamen in lesbare Namen:
```json
{
"btr": "Betrag",
"dat": "Datum",
"kto": "Kontonummer",
"empf": "Empfänger"
}
```
Speichern Sie diese als `.json`-Datei und laden Sie sie im Programm.
## Voreinstellungen
Voreinstellungen speichern Ihre Konfiguration für wiederkehrende Aufgaben:
- Kopfzeile ja/nein
- Leere Zeilen/Spalten entfernen
- Mapping-Datei
- Spaltenauswahl
- Ausgabeformat
- CSV-Export-Einstellungen
- Sortierung
Voreinstellungen werden im Verzeichnis `csv_processor_config/` gespeichert.
## Build
### Linux-Executable erstellen
```bash
./build_linux.sh
```
Erstellt eine standalone-Executable in `dist/`.
### Debian-Paket erstellen
```bash
./build_debian.sh
```
Erstellt ein `.deb`-Paket für Debian/Ubuntu.
### Windows-Executable erstellen
```bash
./build_windows.bat
```
Oder unter Linux mit Wine:
```bash
./build_windows_wine.sh
```
## Projektstruktur
```
csv-processor/
├── csv_processor.py # CLI-Version
├── csv_processor_gui.py # GUI-Version
├── requirements.txt # Python-Abhängigkeiten
├── README.md # Diese Datei
├── LICENSE # MIT-Lizenz
├── build_linux.sh # Build-Script Linux
├── build_debian.sh # Build-Script Debian-Paket
├── build_windows.bat # Build-Script Windows
└── dist/ # Fertige Pakete
└── csv-processor-debian.deb
```
## Tipps & Tricks
### Große Dateien
- Bei >10.000 Zeilen: 5-30 Sekunden Verarbeitungszeit
- Bei >100.000 Zeilen: CLI-Version ist schneller
- Leere Spalten werden vor der Spaltenauswahl entfernt
### CSV-Export für Excel
- Delimiter: Semikolon (;) für deutsche Excel-Versionen
- Quoting: Minimal
### CSV-Export für Datenbanken
- Delimiter: Tab
- Quoting: Minimal
- Keine Kopf-/Fußzeile
## Lizenz
MIT License - siehe [LICENSE](LICENSE)
## Autor
Sebastian Zell <sebastian.zell@zell-aufmass.de>
---
**Version:** 2.0
**Stand:** Januar 2026