Initial commit - Stand 26.04.2026
This commit is contained in:
@@ -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})")
|
||||
Reference in New Issue
Block a user