Mein Arbeitsbuch hat 6 Blätter. Die letzten 3 Blätter sind eine Reihe von Formeln, die ich momentan manuell kopiere und Werte in die ersten 3 Blätter einfüge. Ich verwende wb.copy_worksheet(), um die Kopien zu erstellen und das Arbeitsbuch als data_only = True zu laden. Wenn ich jedoch speichere, sind die Formeln alle weg, weil sie als data_only geladen werden. Gibt es eine Möglichkeit, die Werte zu kopieren, aber die Formeln zu behalten? Die Blätter sind zu groß, um Zelle für Zelle zu gehen.Openpyxl Formeln behalten aber Werte kopieren
Heres mein Code:
import openpyxl
wb = openpyxl.load_workbook("symbols.xlsx", data_only=True)
ws = wb.get_sheet_names()
print (ws)
Value = ws[0:3] #set equal to first 3 sheets
BB = ws[3:7] #set equal to last 3 sheets
for s in range(0, len(Value)):
CopyBB = wb.copy_worksheet(wb[BB[s]]) #copy from bb sheet
CopyBB.title = Value[s]
myorder = [6, 7, 8, 3, 4, 5, 0, 1, 2] #this is to reorder the sheets that got copied.
wb._sheets =[wb._sheets[i] for i in myorder]
wb.remove_sheet(wb.worksheets[8])
wb.remove_sheet(wb.worksheets[7])
wb.remove_sheet(wb.worksheets[6])
wb.worksheets[0].title = "Securities Values"
wb.worksheets[1].title = "Indices Values"
wb.worksheets[2].title = "Currencies Values"
return wb.save("symbols.xlsx")
können Sie uns den gesamten Code zeigen, einschließlich des Ladeteils? –
Das Original bearbeitet, um den vollständigen Code anzuzeigen. –
Bitte siehe https://StackOverflow.com/questions/40000170/ –