Files
buchhaltung/read_niki_excel2.py
2026-04-26 07:51:39 +02:00

61 lines
2.0 KiB
Python

#!/usr/bin/env python3
"""Liest die Niki Excel mit Auslagen korrekt aus"""
import pandas as pd
df = pd.read_excel('Schulden Niki.xlsx', sheet_name='Tabelle1', header=None)
print('=== NIKI EXCEL - MIT AUSLAGEN ===')
print()
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] # Nur das Datum, keine Uhrzeit
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})
print(f'Zahlung: {datum} | +{abgezahlt:7.2f} EUR | {notiz}')
# Auslage (Neue Kosten > 0) -> negative Auslage
if not pd.isna(neue_kosten) and neue_kosten > 0:
auslagen.append({'datum': datum, 'betrag': float(neue_kosten), 'notiz': notiz})
print(f'Auslage: {datum} | -{neue_kosten:7.2f} EUR | {notiz}')
print()
print('=== ZUSAMMENFASSUNG ===')
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(f'Startschuld: 7000 EUR')
berechnet = 7000 - summe_zahlungen + summe_auslagen
print(f'Restschuld: {berechnet:.2f} EUR')
print()
print('=== JSON FÜR IMPORT ===')
import json
all_transactions = []
for z in zahlungen:
all_transactions.append({'datum': z['datum'], 'typ': 'zahlung', 'betrag': z['betrag'], 'notiz': z['notiz']})
for a in auslagen:
all_transactions.append({'datum': a['datum'], 'typ': 'auslage', 'betrag': -a['betrag'], 'notiz': a['notiz']})
print(json.dumps(all_transactions, indent=2, ensure_ascii=False))