Neue Funktion zum Schreiben Marketing Automations Texte
This commit is contained in:
@@ -216,6 +216,42 @@ class GoogleSheetHandler:
|
|||||||
)
|
)
|
||||||
return last_data_index
|
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
|
@retry_on_failure
|
||||||
def batch_update_cells(self, update_data):
|
def batch_update_cells(self, update_data):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user