google_sheet_handler.py aktualisiert

This commit is contained in:
2025-08-01 11:38:00 +00:00
parent 54a3b27e16
commit 9938fe4e34

View File

@@ -62,12 +62,28 @@ class GoogleSheetHandler:
return self._all_data_with_headers.copy()
def get_sheet_as_dataframe(self, sheet_name):
"""
Liest ein komplettes Tabellenblatt und gibt es als Pandas DataFrame zurück.
NEU: Funktioniert auch, wenn die Header-Zeile doppelte Spaltennamen enthält.
"""
try:
if not self.client and not self._connect(): return None
self.logger.debug(f"Lese Tabellenblatt '{sheet_name}' als DataFrame...")
worksheet = self.client.open_by_url(self.sheet_url).worksheet(sheet_name)
# KORRIGIERTE ZEILE
data = worksheet.get_all_records()
df = pd.DataFrame(data)
# Lese alle Werte als Liste von Listen, das ist robuster
all_values = worksheet.get_all_values()
if not all_values:
self.logger.warning(f"Tabellenblatt '{sheet_name}' ist leer. Erstelle leeren DataFrame.")
return pd.DataFrame()
# Nimm die erste Zeile als Header und die restlichen als Daten
header = all_values[0]
data = all_values[1:]
df = pd.DataFrame(data, columns=header)
self.logger.info(f"{len(df)} Zeilen aus '{sheet_name}' als DataFrame geladen.")
return df
except gspread.exceptions.WorksheetNotFound: