#!/usr/bin/env python3 """Liest die Niki Excel vollständig mit Auslagen""" import pandas as pd import json df = pd.read_excel('Schulden Niki.xlsx', sheet_name='Tabelle1', header=None) zahlungen = [] auslagen = [] for idx in range(6, len(df)): row = df.iloc[idx] datum_raw = row[2] abgezahlt = row[5] neue_kosten = row[6] fuer_was = row[7] if pd.isna(datum_raw): continue if isinstance(datum_raw, pd.Timestamp): datum = datum_raw.strftime('%Y-%m-%d') else: datum = str(datum_raw).split()[0] notiz = fuer_was if not pd.isna(fuer_was) else '' # Zahlung (Abgezahlt > 0) if not pd.isna(abgezahlt) and abgezahlt > 0: zahlungen.append({'datum': datum, 'betrag': float(abgezahlt), 'notiz': notiz}) # Auslage (Neue Kosten ist NEGATIV in Excel -> wir speichern als negativ in DB) if not pd.isna(neue_kosten) and neue_kosten < 0: auslagen.append({'datum': datum, 'betrag': abs(float(neue_kosten)), 'notiz': notiz}) print('=== KORREKTE DATEN ===') summe_zahlungen = sum(z['betrag'] for z in zahlungen) summe_auslagen = sum(a['betrag'] for a in auslagen) print(f'Zahlungen: {len(zahlungen)} Stueck = {summe_zahlungen:.2f} EUR') print(f'Auslagen: {len(auslagen)} Stueck = {summe_auslagen:.2f} EUR') print() print('Startschuld: 7000 EUR') berechnet = 7000 - summe_zahlungen + summe_auslagen print(f'Restschuld: {berechnet:.2f} EUR') print() print('=== KOMPLETTE LISTE ===') for z in zahlungen: print(f'Zahlung: {z["datum"]} | +{z["betrag"]:7.2f} EUR | {z["notiz"]}') for a in auslagen: print(f'Auslage: {a["datum"]} | -{a["betrag"]:7.2f} EUR | {a["notiz"]}') print() print('=== JSON FUER IMPORT ===') all_trans = [] for z in zahlungen: all_trans.append({'datum': z['datum'], 'typ': 'zahlung', 'betrag': z['betrag'], 'notiz': z['notiz']}) for a in auslagen: all_trans.append({'datum': a['datum'], 'typ': 'auslage', 'betrag': -a['betrag'], 'notiz': a['notiz']}) print(json.dumps(all_trans, indent=2, ensure_ascii=False))