【问题标题】:Is there any way to just update the value from google sheets to mongodb有什么方法可以将值从谷歌表更新到 mongodb
【发布时间】:2021-06-11 06:58:39
【问题描述】:

我创建了一个 webhook 和一个 google 脚本来从工作表中获取值并将其存储在数据库中。在触发器的帮助下,我可以在发生更改时运行脚本。但是在执行所有列时再次上传,我有多个相同值的条目。我该如何解决这个问题?


var sh1 =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1")
var rng =  sh1.getDataRange().getValues();
for(var i=1;i<rng.length; i++){
    var formData = {
      "timestamp": rng[i][0],
      "email":rng[i][1]
}
    var params = {
      'method' : 'post',
      'payload': formData
    }
    var getId = UrlFetchApp.fetch('webhookURL', params);
    sh1.getRange(i+1, 31).setValue(getId);
}

}

这是我的谷歌脚本。我打算将数据复制粘贴到谷歌表中并更新其中的值。 我应该使用什么类型的触发器来解决这个问题。

【问题讨论】:

    标签: mongodb google-apps-script google-sheets triggers webhooks


    【解决方案1】:

    如果您只想上传已更改的内容,那么您可能需要考虑使用event object 或使用.getActiveRange() 来获取已编辑的单元格(您可以从那里获取列或行)。目前,您的脚本按预期工作,它从工作表中获取所有数据并在循环中将其全部推出。这更像是一个设计问题,而不是实际的代码问题。

    【讨论】:

    • 那么我该如何解决这个问题?
    • 不要使用for 循环。正如我所说,这是一个设计问题。该代码按预期工作。假设您在电子表格中有 5 个值。每当您更改其中任何一个值时,您都是在有意要求脚本执行 5 个 fetch 请求(每个值一次)。
    • 此外,我确实链接到了事件对象 Google 文档,因此您可以查看可以在那里使用的内容。 onEdit 例如可以为您获取旧值和新值,以便您可以仅从新值生成请求
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多