From 4f02a54ab52ab19a92157cd492c8b69a2f4a16f0 Mon Sep 17 00:00:00 2001 From: Floke Date: Fri, 18 Jul 2025 14:13:30 +0000 Subject: [PATCH] google_sheet_handler.py aktualisiert --- google_sheet_handler.py | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/google_sheet_handler.py b/google_sheet_handler.py index 0a455ab6..b792799d 100644 --- a/google_sheet_handler.py +++ b/google_sheet_handler.py @@ -86,51 +86,38 @@ class GoogleSheetHandler: self._all_data = self.sheet.get_all_values() if not self._all_data: - self.logger.warning("Google Sheet scheint leer zu sein oder get_all_values() lieferte keine Daten.") + self.logger.warning("Google Sheet scheint leer zu sein.") self.headers = [] - return True # Kein Fehler, nur keine Daten + return True num_rows = len(self._all_data) num_cols = len(self._all_data[0]) if num_rows > 0 else 0 self.logger.info(f"Daten neu geladen: {num_rows} Zeilen, {num_cols} Spalten.") try: - # KORREKTUR: Extrahiere die 'index'-Werte und finde das Maximum davon. all_indices = [v['index'] for v in COLUMN_MAP.values()] - if not all_indices: - raise ValueError("COLUMN_MAP enthält keine Indizes.") + if not all_indices: raise ValueError("COLUMN_MAP leer") max_col_idx_in_map = max(all_indices) - - # Die Anzahl der Spalten im Sheet muss mindestens so groß sein wie der höchste Index + 1 expected_min_cols = max_col_idx_in_map + 1 if num_cols < expected_min_cols: self.logger.warning( - f"Geladenes Sheet hat nur {num_cols} Spalten, aber COLUMN_MAP definiert Spalten bis Index " - f"{max_col_idx_in_map} (erwartet mind. {expected_min_cols} Spalten)." - ) - except (ValueError, KeyError) as e: - self.logger.warning(f"COLUMN_MAP scheint leer oder fehlerhaft zu sein. Kann Spaltenanzahl nicht pruefen. Fehler: {e}") + f"Sheet hat nur {num_cols} Spalten, aber COLUMN_MAP erwartet mind. {expected_min_cols}.") except Exception as e: - self.logger.error(f"Unerwarteter Fehler bei der Pruefung der Spaltenanzahl gegen COLUMN_MAP: {e}") + self.logger.error(f"Fehler bei der Pruefung der Spaltenanzahl: {e}") - # Finde die Header-Zeilen (Annahme: die erste Zeile mit "CRM Name" drin) - self._header_rows = 5 # Standardwert for i, row in enumerate(self._all_data): if "CRM Name" in row: - # Wir nehmen an, dass die Zeile VOR den Headern die Spaltenbuchstaben enthält - self._header_rows = i - self.headers = self._all_data[self._header_rows] + self._header_rows = i + 1 + self.headers = row break - else: # Falls "CRM Name" nicht gefunden wird + else: self.headers = self._all_data[0] if self._all_data else [] - return True except Exception as e: - self.logger.error(f"Allgemeiner Fehler beim Laden der Google Sheet Daten: {type(e).__name__} - {e}") - self.logger.debug(traceback.format_exc()) - raise e + self.logger.critical(f"Allgemeiner Fehler beim Laden der Google Sheet Daten: {e}", exc_info=True) + return False def get_data(self): """