【问题标题】:Google App Script > Spreadsheet > get row id?谷歌应用脚​​本>电子表格>获取行ID?
【发布时间】:2015-01-13 02:01:34
【问题描述】:

除了可以使用Range.getRowIndex() 获得的行索引之外,电子表格中的行是否有任何唯一标识符?如果是,那么 API 是什么?我在 Google 文档中没有看到它。

我厌倦了依赖行索引,因为用户可能会手动交换或删除行,然后进行比较...

我希望能够唯一标识表单提交。

【问题讨论】:

  • 可能包含一些代码来展示你如何使用它
  • 如果用户可以删除行而您不信任它,他们也可以编辑任何表单响应值。你在比较什么?

标签: google-apps-script google-sheets google-sheets-api google-forms


【解决方案1】:

您可以在行中设置一个唯一的表单响应 id...

e.response.getId();

其中 'e' 是传递给表单提交函数的对象。

【讨论】:

  • 谢谢,如果您在提交时没有收到此信息,有什么方法可以找回它吗?我想我可以使用 UUID 生成器等。
【解决方案2】:

很抱歉回答了这么老的问题,但是 Google 把它作为我自己问题的答案(表单响应和电子表格行之间的关系如何)。

给定表单 ID,可以使用 Google Apps 脚本表单服务获取所有响应,并为每个响应获取其 ID 和时间戳,并使用电子表格服务将 ID 存储在匹配的行中时间戳:

var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
var responses = form.getResponses();
for (var i = 0; i < responses.length; i++) {
    var response = responses[i];
    Logger.log(response.getId());
    Logger.log(response.getTimestamp());
    // use Spreadsheet API to get matching row and store ID
}

https://developers.google.com/apps-script/reference/forms/

https://developers.google.com/apps-script/reference/spreadsheet/

【讨论】:

    猜你喜欢
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多