【问题标题】:How do i get data from the last row of a given column in a google spreadsheet after the form is submitted?提交表单后,如何从谷歌电子表格中给定列的最后一行获取数据?
【发布时间】:2012-10-08 09:44:21
【问题描述】:

我想根据最后一行的数据向特定的人发送电子邮件,类似于 vlookup 功能。如果在表单中输入的数据是 x,则发送邮件给 joe,如果数据是 y,则发送邮件给 jack 等。我很困惑当没有活动范围时,范围选择是如何工作的,就像在电子表格视图中一样。

function sendEmails() 
{   
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var row = sheet.getLastRow();
  var data = sheet.getRange(row, 5).getValue();


 if (data == "xxx")
 {
   sendmail //i got this
 }

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    在电子表格不一定打开的这种情况下(对表单提交做出反应),您最好使用这些方法来访问工作表:

      var ss = SpreadsheetApp.openById('the ID of the spreadsheet');
      var sh = ss.getSheets()[0];// access first sheet (0 indexed)
      var row = sh.getLastRow();
      var data = sh.getRange(row, 5).getValue();
    

    【讨论】:

      【解决方案2】:

      塞尔吉-

      我按照你的建议编写了这个脚本,只是将最后一行替换为:

      return sh.getRange(row, 5).getValue();
      

      并将其放入我的电子表格中。但是,一旦有新的表单提交到达,电子表格中的单元格就不会更新...

      应该怎么做?

      【讨论】:

      • 对不起,我不明白你的问题……你能详细说明一下吗?另外:我认为您最好开始一个新问题...
      • 我自己找到了答案,所以我将解释这个问题以及我找到的解决方法:问题是,如果我编写此函数但它返回该数据而不是通过电子邮件发送它,然后我调用电子表格中的函数,则电子表格值不会在新表单数据到达时更新。解决方法是将此最新值写入函数内的给定范围,并设置每次提交表单时调用的函数。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多