91 lines
3.3 KiB
Python
91 lines
3.3 KiB
Python
#!/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})")
|