2016-11-30 1 views
0

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") 
+0

können Sie uns den gesamten Code zeigen, einschließlich des Ladeteils? –

+0

Das Original bearbeitet, um den vollständigen Code anzuzeigen. –

+0

Bitte siehe https://StackOverflow.com/questions/40000170/ –

Antwort

0

hatte ich ein ähnliches Problem. Sie müssen = 'MVSM! A1' verwenden, wobei MVSM der Blattname und dann A1 der Zellenwert ist. Verwenden Sie das einfach, wenn Sie bei Verwendung von openpyx den Zellenwert zuweisen.

+1

wow letztes mal gebe ich meine 2 cents. – dman

Verwandte Themen