Я новичок в программировании. Я пытаюсь добиться подобного эффекта в GSpreadsheets, который я достиг с файлом .xls (с библиотекой openpyxl). Это всего лишь часть простого напоминания-бота, который отправляет напоминание (на канал Slack) за 7 дней до даты, найденной в .xls или таблице. Мой пример кода с примером Excel:Итерация через Google Spreadsheet - как создать цикл?
def excel_check():
zakres = datetime.timedelta(days = 7)
dzisiaj = (datetime.date.today() + zakres)
miesiac = dzisiaj.month
rok = dzisiaj.year
dzien = dzisiaj.day
data_check = datetime.datetime(rok, miesiac, dzien, 0, 0, 0)
wb = load_workbook(filename = "daty.xlsx", data_only = True)
ws = wb.get_sheet_by_name("sheet1")
cell_range = ws["B2":"B25"]
for row in cell_range:
for cell in row:
if cell.value == data_check:
imie = ws.cell(row=cell.row, column=1).value
dzial = ws.cell(row=cell.row, column=3).value
typ_umowy = ws.cell(row=cell.row, column=4).value
przelozony = ws.cell(row=cell.row, column=5).value
AND HERE WE'RE PERFORMING SLACK/API MESSAGE WITH STRINGS ABOVE (imie, dzial, typ_umowy)
Я сумел изменить код в действие GSpread:
def excel_check():
zakres = datetime.timedelta(days = 7)
dzisiaj = (datetime.date.today() + zakres)
miesiac = dzisiaj.month
rok = dzisiaj.year
dzien = dzisiaj.day
data_check = datetime.datetime(rok, miesiac, dzien, 0, 0, 0)
scope = ["https://spreadsheets.google.com/feeds"]
credentials = ServiceAccountCredentials.from_json_keyfile_name("validcredentialsitworks", scope)
gc = gspread.authorize(credentials)
wks = gc.open_by_url("myurl").sheet1
cell_range = wks.range("B2:B25")
for row in cell_range:
for cell in row:
if cell.value == data_check:
imie = wks.cell(row=cell.row, column=1).value
dzial = wks.cell(row=cell.row, column=3).value
typ_umowy = wks.cell(row=cell.row, column=4).value
AND HERE WE'RE PERFORMING SLACK/API MESSAGE WITH STRINGS ABOVE (imie, dzial, typ_umowy)
Но, к сожалению, не действует как часть Excel выше (Excel часть отправляет надлежащее сообщение Slack, GSpread часть не). Я получил сообщение об ошибке:
TypeError: 'Cell' object is not iterable
Это, вероятно, что-то не так с синтаксисом, но я не могу узнать, что :(
Не могли бы вы дать мне подсказку
В? Короче говоря, что это эквивалентно:
for row in cell_range:
for cell in row:
print cell.value
в GSpread
Ваш на вопрос был дан ответ, но я предлагаю вам назвать ваши переменные немного лучше, и если не прокомментировать код, что это такое. –