2016-11-30 13 views
0

ブックは6枚あります。最後の3枚は、現在手動​​でコピーして最初の3枚に値を貼り付ける数式です。私はwb.copy_worksheet()を使ってコピーを作成し、ワークブックをdata_only = Trueとしてロードしています。しかし、私が保存すると、数式はdata_onlyとしてロードされるため、すべて消えてしまいます。私は値をコピーすることができますが、数式を保持する方法はありますか?シートは大きすぎてセルごとに移動することはできません。Openpyxl数式を保持しながら値をコピー

HERESに私のコード:

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

ローディング部品を含むすべてのコードを表示できますか? –

+0

完全なコードを表示するようにオリジナルを編集しました。 –

+0

https://stackoverflow.com/questions/40000170/ –

答えて

0

私は同様の問題がありました。 = 'MVSM!A1'を使用する必要があります。ここで、MVSMはシート名、A1はセル値です。 openpyxlを使用している間にセル値を割り当てるときにそれを使用してください。

+1

最後に私は2セントを与える。 – dman

関連する問題