#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.