【问题标题】:Getting gspread to update multiple spreadsheet files with the same data让 gspread 用相同的数据更新多个电子表格文件
【发布时间】:2019-12-11 15:49:19
【问题描述】:

如上所述,我正在尝试使用工作表 ID 作为标识符更新多个具有相同信息的工作表文件。我试图用 for 循环来实现这一点,但没有成功。我尝试使用的一些基本代码是:

conn = gspread.authorize(credentials)
sheets = ['sheetid1', 'sheetid2']
worksheet_list = conn.open_by_key(sheets).worksheet("Rack Layout")
worksheet_list.update_acell('Q1', 'some cell value')

因此,如果我将“工作表”定义为一个工作表 ID,则更新工作正常,但是如果我将“工作表”定义为多个工作表,则会出现错误。我知道这真的很基本,我认为问题在于它试图在同一行打开完整列表(即两个 sheetid),而不是说“为一个 sheetID 运行这一行,然后为下一个运行该行”。我认为实现这一点的方法是一个 for 循环,但我还没有让它与一个 for 循环一起工作。我知道这是一个 nube 问题,但我已经尝试了一段时间,从我的搜索中我没有找到任何其他关于让 gspread 执行此操作的论坛帖子。

【问题讨论】:

    标签: python google-sheets-api gspread


    【解决方案1】:
    • 您有 2 个 Google 电子表格。
      • 2 个 Google 电子表格分别具有“机架布局”表。
    • 您希望将“某个单元格值”的值放入每个电子表格的“机架布局”工作表中的单元格“Q1”中。
    • 您希望使用 gspread 和 python 来实现此目的。
    • 您已经能够使用 Sheets API 获取和放置电子表格的值。

    如果我的理解是正确的,那么这个答案呢?请认为这只是几个可能的答案之一。

    在这个修改后的脚本中,使用 for 循环将值放入每个电子表格。

    修改脚本:

    conn = gspread.authorize(credentials)
    sheets = ['sheetid1', 'sheetid2']
    for sheet in sheets:  # Added
        worksheet_list = conn.open_by_key(sheet).worksheet("Rack Layout")
        worksheet_list.update_acell('Q1', 'some cell value')
    

    如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

    【讨论】:

    • 非常感谢;这已经为我解决了这个问题并且完美地工作。你所有的假设都是正确的;抱歉,我的描述不清楚。我只是没有得到正确的 for 循环,甚至查看通用的 for 循环示例,我无法使其适用于此用途。
    • @Joe4262 感谢您的回复。很高兴您的问题得到解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    相关资源
    最近更新 更多