Проблемы с результатами формул (openpyxl) - PullRequest
0 голосов
/ 17 февраля 2020

Я пробовал много раз, но не могу решить эту простую задачу. На первом рисунке мой код, он работает.

enter image description here Но у меня есть одно условие: если SUM> 3.000.000, я должен * 0.009 (не 0.01), я попытался использовать эту конструкцию, но это не так. не работает (я использую read_only и data_only)

enter image description here

Я надеюсь, что вы можете мне помочь

enter code here
            for w in range(1, x):
                  for c in range (1, y):
            _ = ws.cell(column=c+1, row=w+1)
                     if w == x-1 :
            _ = ws.cell(column=c+5, row=w+2, value='=SUM('+f(c+5)+str(w- 
            x+2)+':'+ f(c+5)+str(w+1)+')')
            if c+5 == y :
                break
            _.number_format='#,#0.00'

            t = f(6)+str(x+1)+'+'+f(18)+str(x+1)+'+'+f(19)+str(x+1)

            _ = ws.cell(column=6, row=w+3, value='=('+t+')*0.01')

            #_ = ws.cell(column=6, row=w+9, value="=СУММ(F1+R1+S1))"#I 
            tried so
            #b = ws.cell(column=6, row=w+3).value
            #print(b)#so i understand that openpyxl return the formula,not 
            the value
            _ = ws.cell(column=6, row=w+9, value='=('+(f(8)+str(x+1)+'-'+ 
            f(9)+str(x+1)+
            '-'+ f(12)+str(x+1)+'-'+ f(14)+str(x+1))+'+'+ f(16)+str(x+1)+'- 
            '+f(17)+str(x+1)+'- 
            '+f(6)+str(x+2)+'+'+f(6)+str(x+3)+'+'+f(6)+str(x+5)+')')


            #_ = ws.cell(column=6, row=w+9, value="=ЕСЛИ(СУММ(F1+R1+S1) 
            <3000000;СУММ(F1+R1+S1)*0,01;СУММ(F1+R1+S1)*0,009)"#this not 
            works

            if int(t) < 3 * 10 ** 6
            _ = ws.cell(column=6, row= x+3, value '=('+t+')*0.01
            if t > 3 * 10 ** 6
            _ = ws.cell(column=6, row= x+3, value '=('+t+')*0.009

            _.font=ft_4
            _.number_format='#,#0.00'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...