#!/usr/bin/env python3 """ Analysiert Sheet 'Tabelle1' - wahrscheinlich das Haupt-Sheet mit aktuellen Daten. """ import openpyxl from datetime import datetime datei = "Kopie von Kostenrechnung der Nächsten jahre (3).xlsx" wb = openpyxl.load_workbook(datei, data_only=True) sheet_name = "Tabelle1" ws = wb[sheet_name] print(f"=== SHEET: {sheet_name} ===") print(f"Max Zeile: {ws.max_row}, Max Spalte: {ws.max_column}") # Zeile 1-10: Headers print("\n=== HEADER (Zeile 1-10) ===") for row_idx in range(1, 11): row_data = [] for col_idx in range(1, 20): cell = ws.cell(row=row_idx, column=col_idx) val = cell.value if val: if isinstance(val, str): row_data.append((col_idx, val[:40])) elif isinstance(val, (int, float)): row_data.append((col_idx, f"{val:,.2f}")) elif isinstance(val, datetime): row_data.append((col_idx, val.strftime("%Y-%m"))) if row_data: print(f"Zeile {row_idx}: {row_data}") # Suche nach spezifischen Kreditnamen print("\n=== SUCHE NACH KREDITNAMEN ===") kredit_namen = ["DSL Bank", "PSD Nord", "Zingelstr", "PVCreditplus", "Sparkasse", "Targo", "Köpke", "Kopke", "Restschuld", "Kredit"] for row_idx in range(1, min(ws.max_row + 1, 200)): for col_idx in range(1, min(ws.max_column + 1, 30)): 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(): # Zeige die Zeile row_context = [] for c in range(1, 15): v = ws.cell(row=row_idx, column=c).value if v: if isinstance(v, str): row_context.append(f"{v[:20]}") elif isinstance(v, (int, float)): row_context.append(f"{v:,.0f}") print(f"\nZeile {row_idx}, Spalte {col_idx}: '{val}'") print(f" Kontext: {row_context[:8]}") # Suche nach großen Geldbeträgen (Restschulden > 1000) print("\n=== GROSSE BETRÄGE (> 10000) IN ERSTEN 100 ZEILEN ===") gross_betraege = [] for row_idx in range(1, min(ws.max_row + 1, 100)): for col_idx in range(1, min(ws.max_column + 1, 30)): cell = ws.cell(row=row_idx, column=col_idx) val = cell.value if val and isinstance(val, (int, float)) and val > 10000: # Suche nach Label label = None for c in range(1, min(30, ws.max_column + 1)): v = ws.cell(row=row_idx, column=c).value if v and isinstance(v, str): label = v break gross_betraege.append((row_idx, col_idx, val, label)) for row, col, val, label in gross_betraege[:20]: print(f" Zeile {row}, Spalte {col}: {val:>15,.2f} EUR - Label: {label}") # Suche nach den genauen Zielwerten print("\n=== SUCHE NACH ZIELWERTEN (Toleranz 500 EUR) ===") targets = [ ("DSL Bank", 64656.88), ("PSD Nord", 50384.50), ("Zingelstr. 14 DSL", 24382.38), ("Zingelstr. 14 Sparkasse", 8140.11), ("PVCreditplus", 1666.53) ] for row_idx in range(1, ws.max_row + 1): for col_idx in range(1, min(ws.max_column + 1, 50)): val = ws.cell(row=row_idx, column=col_idx).value if val and isinstance(val, (int, float)): for name, target in targets: if abs(val - target) < 500: print(f"\n {name}: {val:,.2f} bei Zeile {row_idx}, Spalte {col_idx}") # Zeige die Zeile row_vals = [] for c in range(1, 20): v = ws.cell(row=row_idx, column=c).value if v: if isinstance(v, str): row_vals.append(f"S{c}:{v[:15]}") elif isinstance(v, (int, float)): row_vals.append(f"S{c}:{v:,.0f}") print(f" Zeile: {row_vals}") # Zeige Header headers = [] for c in range(1, 20): h = ws.cell(row=1, column=c).value if h: headers.append(f"S{c}:{str(h)[:15]}") print(f" Header: {headers}")