Openpyxl сумма строк и циклов

#python-3.x #excel #openpyxl

#python-3.x #excel #openpyxl

Вопрос:

Я новичок в openpyxl и python, поэтому я ищу некоторую помощь в своем проекте. Я использую openpyxl на python, и я хочу суммировать строки, пока они не достигнут определенного числа. После достижения этого определенного числа он вставит сумму в ячейку рядом с ней. Затем цикл пропустит все добавленные строки, перейдет к ячейке и выполнит сумму.

Чтобы дать представление о том, что я пытаюсь сделать:

изображение

Редактирование 1: я застрял в индексе списка вне диапазона

 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)
  

Комментарии:

1. Что вы пробовали до сих пор?

2. Привет, Чарли, я обновил то, что у меня есть в сообщении выше

3. Я не могу толком прочитать этот код, но он выглядит слишком сложным и делает больше, чем вы говорите.

Ответ №1:

Сначала вам нужно проиндексировать место ввода (строка увеличивается, col = 1) в цикле for

Вам нужна переменная sum для записи добавленной суммы, она может быть объявлена как 0 перед циклом.

Затем для каждого хода вы добавляете к нему прочитанное значение, а затем сравниваете условие. Если не нарушено, continue но если нарушено, напишите сумму рядом с ней, а затем переведите сумму обратно в 0.