sync_manager.py aktualisiert
This commit is contained in:
@@ -101,23 +101,29 @@ class SyncManager:
|
|||||||
self.logger.info("Lade bestehende Daten aus dem Google Sheet...")
|
self.logger.info("Lade bestehende Daten aus dem Google Sheet...")
|
||||||
try:
|
try:
|
||||||
all_data_with_headers = self.sheet_handler.get_all_data_with_headers()
|
all_data_with_headers = self.sheet_handler.get_all_data_with_headers()
|
||||||
|
|
||||||
if not all_data_with_headers or len(all_data_with_headers) < self.sheet_handler._header_rows:
|
if not all_data_with_headers or len(all_data_with_headers) < self.sheet_handler._header_rows:
|
||||||
self.gsheet_df = pd.DataFrame(columns=COLUMN_ORDER).fillna('')
|
self.gsheet_df = pd.DataFrame(columns=COLUMN_ORDER)
|
||||||
else:
|
else:
|
||||||
actual_header = all_data_with_headers[self.sheet_handler._header_rows - 1]
|
actual_header = all_data_with_headers[self.sheet_handler._header_rows - 1]
|
||||||
data_rows_raw = all_data_with_headers[self.sheet_handler._header_rows:]
|
data_rows = all_data_with_headers[self.sheet_handler._header_rows:]
|
||||||
|
|
||||||
# --- HOLZHAMMER-METHODE: JEDE ZELLE ZU STRING KONVERTIEREN ---
|
# --- FINALER DATAFRAME-ERSTELLUNGS-FIX ---
|
||||||
data_rows_as_string = [[str(cell) for cell in row] for row in data_rows_raw]
|
# Wir erstellen das DataFrame aus einem Dictionary, das ist am robustesten.
|
||||||
|
data_dict = {header_col: [] for header_col in actual_header}
|
||||||
temp_df = pd.DataFrame(data_rows_as_string, columns=actual_header)
|
for row in data_rows:
|
||||||
|
for i, header_col in enumerate(actual_header):
|
||||||
|
# Fülle fehlende Werte auf, wenn eine Zeile zu kurz ist
|
||||||
|
value = row[i] if i < len(row) else ''
|
||||||
|
data_dict[header_col].append(str(value)) # Sofort zu String konvertieren
|
||||||
|
|
||||||
|
temp_df = pd.DataFrame(data_dict)
|
||||||
|
|
||||||
for col_name in COLUMN_ORDER:
|
for col_name in COLUMN_ORDER:
|
||||||
if col_name not in temp_df.columns:
|
if col_name not in temp_df.columns:
|
||||||
temp_df[col_name] = ''
|
temp_df[col_name] = ''
|
||||||
|
|
||||||
self.gsheet_df = temp_df[COLUMN_ORDER].fillna('')
|
self.gsheet_df = temp_df[COLUMN_ORDER]
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.critical(f"Fehler beim Laden/Umwandeln der GSheet-Daten: {e}", exc_info=True)
|
self.logger.critical(f"Fehler beim Laden/Umwandeln der GSheet-Daten: {e}", exc_info=True)
|
||||||
return False
|
return False
|
||||||
|
|||||||
Reference in New Issue
Block a user