Über das Python-Skript hinzugefügte Formeln werden nicht richtig visualisiert [geschlossen]
Posted: 16 Jan 2025, 12:05
Ich verwende ein einfaches Skript in Python, um einige Tabellen in Excel zu erstellen. Im letzten Blatt verwende ich ein Skript, um eine Formel =@indirect hinzuzufügen, die eine bestimmte Tabelle eines über ein Dropdown-Menü ausgewählten Blatts anzeigt. Alles funktioniert irgendwie, außer dass beim Öffnen der Datei die Formel indirekt einen NAME-Fehler anzeigt, aber wenn ich dieselbe identische Formel von Hand neu schreibe, funktioniert sie, selbst wenn ich nur ein einzelnes Zeichen lösche und neu schreibe, funktioniert sie wieder. Warum? ?
Ich habe die manuelle Neuberechnung versucht, aber sie hat nicht funktioniert.
Hier ist die Funktion, die die Tabelle erstellt.
Ich habe die manuelle Neuberechnung versucht, aber sie hat nicht funktioniert.
Hier ist die Funktion, die die Tabelle erstellt.
Code: Select all
def add_dynamic_recap(output_file, months):
wb = load_workbook(output_file)
ws = wb.create_sheet(title="recap dinamico")
# Menu a tendina
dv = DataValidation(type="list", formula1=f'"{",".join(map(str, months))}"', allow_blank=False)
ws.add_data_validation(dv)
ws["A1"] = "Seleziona Mese:"
ws["C1"] = "selezione" # Cella per il menu a tendina
dv.add(ws["C1"])
# Intestazioni della tabella
headers = ["DIPENDENTE", "NOME", "COGNOME", "ORE ORDINARIE", "ORE STRAORDINARIE", "TOT.ORE LAVORATE", "PERC.TOT.ORE ASS.", "Ferie", "CIG", "Malattia",
"Infortunio",
"Permessi",
"Permessi 104",
"Permessi Sindacali"]
for col, header in enumerate(headers, start=1):
ws.cell(row=3, column=col, value=header)
# Righe della tabella dinamica
for row in range(4, 50): # Limitiamo a 50 righe per esempio
for col, header in enumerate(headers, start=1):
column_letter = chr(64 + col) # Ottieni la lettera della colonna
formula = f'=INDIRETTO("Mese_"&$C$1&"!{column_letter}"&"{row}")'
ws.cell(row=row, column=col, value=formula)
wb.calculation_mode = "auto"
# Salva il file
wb.save(output_file)