google_sheet_handler.py aktualisiert
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user