Neue Funktion zum Schreiben Marketing Automations Texte
This commit is contained in:
@@ -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):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user