Initial commit - Stand 26.04.2026

This commit is contained in:
OpenClaw
2026-04-26 07:51:39 +02:00
commit b29c467187
186 changed files with 39281 additions and 0 deletions
+90
View File
@@ -0,0 +1,90 @@
#!/usr/bin/env python3
"""
Liest Kreditdaten aus der Excel-Datei.
"""
import openpyxl
from datetime import datetime
# Excel-Datei laden
datei = "Kopie von Kostenrechnung der Nächsten jahre (3).xlsx"
print(f"Lade {datei}...")
wb = openpyxl.load_workbook(datei, data_only=True)
# Sheet "Tilgung bei Gleichbleibenden Be" laden
sheet_name = "Tilgung bei Gleichbleibenden Be"
ws = wb[sheet_name]
print(f"\n=== Sheet: {sheet_name} ===")
print(f"Max Zeile: {ws.max_row}, Max Spalte: {ws.max_column}")
# Erste 10 Zeilen anzeigen für Header-Analyse
print("\n=== ERSTE 10 ZEILEN (Header-Analyse) ===")
for row_idx in range(1, 11):
row_data = []
for col_idx in range(1, 15):
cell = ws.cell(row=row_idx, column=col_idx)
val = cell.value
if val is not None:
if isinstance(val, str):
row_data.append(f"{val[:30]}")
elif isinstance(val, (int, float)):
row_data.append(f"{val}")
if row_data:
print(f"Zeile {row_idx:2}: {row_data}")
print("\n=== ZEILEN 11-20 ===")
for row_idx in range(11, 21):
row_data = []
for col_idx in range(1, 15):
cell = ws.cell(row=row_idx, column=col_idx)
val = cell.value
if val is not None:
if isinstance(val, str):
row_data.append(f"{val[:30]}")
elif isinstance(val, (int, float)):
row_data.append(f"{val}")
if row_data:
print(f"Zeile {row_idx:2}: {row_data}")
# Nach Kreditnamen suchen
print("\n=== SUCHE NACH KREDITNAMEN ===")
kredit_namen = ["DSL Bank", "PSD Nord", "Zingelstr. 14", "PVCreditplus"]
for row_idx in range(1, 50):
for col_idx in range(1, 20):
cell = ws.cell(row=row_idx, column=col_idx)
val = cell.value
if val and isinstance(val, str):
for kredit in kredit_namen:
if kredit.lower() in val.lower():
# Zeile extrahieren
full_row = []
for c in range(1, 15):
v = ws.cell(row=row_idx, column=c).value
if v:
full_row.append(str(v)[:25])
print(f"\n🔍 '{kredit}' in Zeile {row_idx}, Spalte {col_idx}")
print(f" Zeile: {full_row}")
# Umgebung anzeigen
context = []
for r in range(row_idx-2, row_idx+3):
for c in range(col_idx-1, col_idx+2):
if r > 0 and c > 0:
v = ws.cell(row=r, column=c).value
if v:
context.append(f"({r},{c}:{str(v)[:15]})")
print(f" Kontext: {context}")
# Suche nach Zinssätzen (Prozentwerte)
print("\n=== SUCHE NACH ZINSSÄTZEN (%) ===")
for row_idx in range(1, 30):
for col_idx in range(1, 20):
cell = ws.cell(row=row_idx, column=col_idx)
val = cell.value
if val and isinstance(val, (int, float)):
# Prozentwerte sind oft zwischen 0 und 10 (oder als Dezimal 0.01-0.1)
if 0 < val < 1 or 0 < val < 15:
label_cell = ws.cell(row=row_idx-1, column=col_idx).value if row_idx > 1 else None
print(f"Zeile {row_idx}, Spalte {col_idx}: {val} (Label: {label_cell})")