如何创建循环?

2024-10-01 13:42:29 发布

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

我是个编程新手。我试图在googlesheets中实现与.xls文件(使用openpyxl库)类似的效果。这只是一个简单的提醒机器人的一部分,它在.xls或Sheets中的日期之前七天发布一个提醒(到Slack频道)。在

我的Excel代码示例示例:

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 action:

^{pr2}$

但不幸的是,它的行为不像上面的Excel部分(Excel部分向Slack发送正确的消息,gspread部分则没有)。我收到一条错误消息:

TypeError: 'Cell' object is not iterable

可能是语法有问题,但我不知道是什么。在

你能给我个提示吗?在

简而言之,相当于:

for row in cell_range:
    for cell in row:
        print cell.value

在gspread?在


Tags: infordatadatetimewsvaluecheckcell
2条回答

你想用谷歌的API来传递你的数据表。我跟随these simple steps轻松获取数据。一旦你有了,其余的代码应该保持不变。在

This is a link to my post我解析电子表格中的数据。如果你需要帮助,你可以参考一下。在

It's probably something wrong with the syntax, but I can't find out what :(

gspread docs,range方法返回单元格列表,而不是行列表。这就是为什么您提到了一个错误:您不能迭代row,它实际上是一个单元格。在

如果您不写入电子表格,只需从中读取-我建议您先将其加载到csv:

with open('wks.csv', 'wb') as out:
    out.write(wks.export(format='csv'))

然后遍历csv文件:

^{pr2}$

相关问题 更多 >