更新gspread中的单元格超过26个

2024-04-25 06:34:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图为我的工作自动化谷歌工作表上的排班系统(我在一家书店工作,我的业余爱好是学习编码)。。我已经创建了两个列表,一个带有时间段,另一个带有我想在电子表格中打印的天数

以下是我目前的代码:

days = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"] daysIter = iter(days) timeslots = ["8:00AM","8:30AM","9:00AM","9:30AM","10:00AM","10:30AM","11:00AM","11:30AM", "12:00PM","12:30PM","1:00PM","1:30PM","2:00PM","2:30PM","3:00PM","3:30PM","4:00PM","4:30PM", "5:00PM","5:30PM","6:00PM","6:30PM","7:00PM","7:30PM","8:00PM","8:30PM","9:00PM","9:30PM"] timesIter = iter(timeslots) daysonsheet = sheet.range("A2:A7") timesonsheet = sheet.range("C1:AD1") sheet.update_acell('A1',days[0]) for cell in daysonsheet: cell.value = next(daysIter) sheet.update_cells(daysonsheet) sheet.update_acell('B1',timeslots[0]) for cell1 in timeslots: cell1.value = next(timesIter) sheet.update_cells(timesonsheet)

我可以很好地更新daysonsheet,但timesonsheet会抛出:

File "/Users/*******/Rostering2", line 52, in <module> cell1.value = next(timesIter) AttributeError: 'str' object has no attribute 'value'

据我所知,它们都是相同的,但for循环中有效的“cell”不是作为对象创建的,而“cell1”是出于某种原因

如果有人能解释一下,那就太好了


Tags: inforvaluecellupdatedayssheetnext
1条回答
网友
1楼 · 发布于 2024-04-25 06:34:11

代码中的timeslots是一个字符串列表,它没有.value属性。您应该在Cell对象列表中循环,即timeonsheet。另外,考虑将^ {< CD5> }调用到循环之外,以保存API调用。

for cell1 in timesonsheet:
    cell1.value = next(timesIter)
sheet.update_cells(timesonsheet)

相关问题 更多 >