【问题标题】:Updating a Google Sheets via Python and recognise as a user edit通过 Python 更新 Google 表格并识别为用户编辑
【发布时间】:2017-11-09 12:33:16
【问题描述】:

我目前正在从事一个项目,我从外部 API 将数据提取到 Google 表格中。因此,我创建了一个工作表,我可以在其中插入一个 ID,并且数据将通过 Google 脚本自动获取到另一个工作表上。为了自动化这个任务,我创建了一个可以被我的本地 python 访问的 Drive-API。此外,我想出了如何更改特定的单元格。 但斗争来了。由于更新未被识别为用户编辑更改,我在谷歌脚本中的所有触发器都不起作用,因为它们是通过 onChange 触发器触发的。 我当前的 python 代码如下所示:

Python 代码:

import gspread
from oauth2client.service_account 
import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds']
creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', scope)
client = gspread.authorize(creds)

sheet = client.open('APP_ID_X').sheet1

data = sheet.update_cell(2,1, "10")

GAS 中的第一个触发器:

function onEdit(e){
    if (e.source.getActiveSheet()
       .getName() !== 'APP_ID' || e.range.columnStart != 1 || e.range.rowStart != 2) return;
    e.range.offset(0, 1)
        .setValue(typeof e.value == 'object' ? null : new Date());
  schedTrigger();
}

如果有人知道如何解决我的难题,我将不胜感激!? 非常感谢提前

最好, 鳄鱼

【问题讨论】:

    标签: python google-apps-script google-api


    【解决方案1】:

    如果您可以在“更新”的末尾插入一行应该触发 onChange 事件,那么也许您可以一次完成所有触发操作。

    【讨论】:

    • 感谢您的快速响应。我也在考虑这个解决方案,但是 onEdit 触发器是强制在 ID 单元旁边的单元中设置时间的。因此,我不能省略 onEdit 触发器。你有不同的解决方案吗?我还包括了 GAS 触发器,希望它更清楚。
    猜你喜欢
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多