Openpyxl跳过for循环的迭代

时间:2020-10-21 22:36:33

标签: python-3.x excel openpyxl

我在python上使用openpyxl,我想对行进行求和,直到达到一定数量为止。达到一定数量后,它将把总和粘贴到它旁边的单元格上。然后,循环将跳过所有已添加的行,并继续进入单元格并进行求和。

给出我要做什么的想法:excel picture

from openpyxl import load_workbook
import statistics

wb=load_workbook('Algorand.xlsx')
sheet=wb.active
testlist = []

for row in list(sheet.columns)[0]:
testlist= testlist + [row.value]

print(testlist)
avg=statistics.mean(testlist)
std=statistics.stdev(testlist)
target=avg+2*std
length=len(testlist)

for i in range(0,length-2):
   if testlist[i]<target:
   sum= testlist[i]+testlist[i+1]
   print(f"firstsum:{sum}")
   sheet.cell(row=i + 1, column=3, value=sum)

     if sum<target:
        next=i+2
        sum=sum+testlist[next]
        print(f"secsum:{sum}")
        sheet.cell(row=i + 1, column=3, value=sum)

        if sum<target:
           next = next + 1
           sum = sum + testlist[next]
           #next=i
           print(f"thirdsum:{sum}")
           sheet.cell(row=i + 1, column=3, value=sum)

但是,我得到这个: code results not desired

我该如何解决这个问题

1 个答案:

答案 0 :(得分:0)

您的代码似乎比获得您描述的结果要复杂。只需遍历第一列中的单元格并添加到总计中即可。如果总数达到限制,则写入总数,然后将其重置为零。

尝试以下代码:

VALUE RS TYPE CONDITION OTHER_COLUMN OTHER-COLUMN    
SS 2 GG PROB 1 2
DD 9 CT NORMAL 1 2
FF 5 TT PROB 1 2

输出(限制= 12)

Sum