google_sheet_handler.py aktualisiert

This commit is contained in:
2025-07-29 13:19:06 +00:00
parent 9a653c2494
commit 2f38f78991

View File

@@ -272,7 +272,40 @@ class GoogleSheetHandler:
except Exception as e:
self.logger.error(f"FATAL: Ein unerwarteter Fehler ist beim Schreiben in '{sheet_name}' aufgetreten: {e}")
return False
def get_sheet_as_dataframe(self, sheet_name):
"""Liest ein komplettes Tabellenblatt und gibt es als Pandas DataFrame zurück."""
try:
if not self.client:
if not self._connect(): return None
logging.debug(f"Lese Tabellenblatt '{sheet_name}' als DataFrame...")
worksheet = self.client.open_by_url(self.sheet_url).worksheet(sheet_name)
data = worksheet.get_all_records()
df = pd.DataFrame(data)
logging.info(f"{len(df)} Zeilen aus '{sheet_name}' als DataFrame geladen.")
return df
except gspread.exceptions.WorksheetNotFound:
logging.warning(f"Tabellenblatt '{sheet_name}' nicht gefunden. Gehe davon aus, dass es leer ist.")
return None
except Exception as e:
self.logger.error(f"Fehler beim Lesen des Sheets als DataFrame: {e}")
return None
def append_rows(self, sheet_name, values):
"""Hängt eine Liste von Zeilen an ein Tabellenblatt an."""
try:
if not self.client:
if not self._connect(): return False
logging.debug(f"Hänge {len(values)} Zeilen an das Tabellenblatt '{sheet_name}' an...")
worksheet = self.client.open_by_url(self.sheet_url).worksheet(sheet_name)
worksheet.append_rows(values, value_input_option='USER_ENTERED')
logging.info(f"{len(values)} Zeilen erfolgreich an '{sheet_name}' angehängt.")
return True
except Exception as e:
self.logger.error(f"Fehler beim Anhängen von Zeilen an das Sheet: {e}")
return False
@retry_on_failure
def batch_update_cells(self, update_data):