Neue Funktion zum Schreiben Marketing Automations Texte

This commit is contained in:
2025-07-22 05:12:40 +00:00
parent 2219d4c99a
commit 504ba1f29b

View File

@@ -216,6 +216,42 @@ class GoogleSheetHandler:
)
return last_data_index
def clear_and_write_data(self, sheet_name, data):
"""
Leert das angegebene Tabellenblatt vollständig und schreibt neue Daten hinein.
Die Daten sollten eine Liste von Listen sein (inklusive Header).
"""
try:
self.logger.info(f"Greife auf Tabellenblatt '{sheet_name}' zu, um es zu leeren und neu zu beschreiben...")
worksheet = self.client.open_by_url(self.sheet_url).worksheet(sheet_name)
self.logger.debug("Leere das gesamte Tabellenblatt...")
worksheet.clear()
num_rows = len(data)
num_cols = len(data[0]) if data else 0
if num_rows == 0:
self.logger.warning("Keine Daten zum Schreiben vorhanden.")
return True
self.logger.info(f"Schreibe {num_rows - 1} neue Datenzeilen (insgesamt {num_rows} Zeilen mit Header) in '{sheet_name}'...")
# Setze den Range auf A1 bis zur maximal benötigten Größe
end_col_letter = self._get_col_letter(num_cols)
range_to_update = f'A1:{end_col_letter}{num_rows}'
worksheet.update(range_name=range_to_update, values=data)
self.logger.info(f"Schreiben in Tabellenblatt '{sheet_name}' erfolgreich abgeschlossen.")
return True
except gspread.exceptions.WorksheetNotFound:
self.logger.error(f"FATAL: Das Tabellenblatt '{sheet_name}' wurde nicht gefunden. Bitte prüfen Sie den Namen.")
return False
except Exception as e:
self.logger.error(f"FATAL: Ein unerwarteter Fehler ist beim Schreiben in '{sheet_name}' aufgetreten: {e}")
return False
@retry_on_failure
def batch_update_cells(self, update_data):
"""