Python 使用for循环更新范围中的单元格

Python 使用for循环更新范围中的单元格,python,google-sheets,gspread,Python,Google Sheets,Gspread,我对编码相当陌生,所以如果这很容易的话,我道歉。 我在google sheets中有两列,我想在第三列中添加一个公式,如下所示: =E3*90+F3*10-列中的值为等级,90和10为固定权重 我创建了一个for循环,在更新列中的每个单元格时尝试遍历范围3,90 它在每个单元格中打印公式,但只是最后一次迭代“=E89*90+F89*10” 我通过向for循环中添加report.update_acell'E'+stri'=E'+stri+'*90+F'+stri+'*10'成功地实现了这一点,但这

我对编码相当陌生,所以如果这很容易的话,我道歉。 我在google sheets中有两列,我想在第三列中添加一个公式,如下所示: =E3*90+F3*10-列中的值为等级,90和10为固定权重

我创建了一个for循环,在更新列中的每个单元格时尝试遍历范围3,90

它在每个单元格中打印公式,但只是最后一次迭代“=E89*90+F89*10”

我通过向for循环中添加report.update_acell'E'+stri'=E'+stri+'*90+F'+stri+'*10'成功地实现了这一点,但这会创建太多调用并导致问题

sh = client.open("grading")
report = sh.worksheet("Report")
weighted = report.range('G3:G89')

for cell in weighted:
    for i in range(3,90):
        cell.value = '=(E'+str(i)+'*90)+(F'+str(i)+'*10)'

report.update_cells(weighted, value_input_option='USER_ENTERED')
我想看到的是,“加权”范围内的每个单元格都会更新为一个公式,该公式会查看它们旁边的两个单元格,并将它们添加到公式中,以便结果在加权列中可见。 如。 第3行应为=E3*90+F3*10
第4行应该是=E4*90+F4*10,依此类推,直到完成该范围。

经过多次尝试和错误后,我解决了这个问题。对于任何试图这样做的人,我的解决方案如下:

sh = client.open("grading")
report = sh.worksheet("Report")
weighted = report.range('G3:G89')

for i, cell in enumerate(weighted,3):
    cell.value = '=(E'+str(i)+'*90)+(F'+str(i)+'*10)'

report.update_cells(weighted, value_input_option='USER_ENTERED')