【问题标题】:For Loop for Event Object variables in Google App ScriptGoogle App 脚本中的事件对象变量的 For 循环
【发布时间】:2023-04-08 02:22:01
【问题描述】:

再次在应用脚本中使用 newbee 我正在尝试执行以下操作

如何在表单提交时将数组值存储在事件对象的变量中,即我需要将表单 J 中的表单响应列中的所有值从单行获取到 AF 到变量中

类似 var value = j,k,l,m,n,o(显然是没有任何 spl 字符的字符串,如 ,.etc)

本能地应该有更好的方法来获取变量中的所有值?尝试了一些循环,因为范围从工作表的中间列(J-AF)开始无法正确处理

function onFormSubmit(e) {
Logger.log("%s", JSON.stringify(e));
//Get information from form and set as variables
var amount = [e.values[9],e.values[10],e.values[11],e.values[12],e.values[13],e.values[14],...e.values[31]];
Logger.log('Lets see if its here:'+ amount);
}

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    来自onFormSubmit(e)e 对象具有以下结构:

    { 
    authMode: {... },
      namedValues: 
       { 'Question 2': [ 'Answer 2' ],
         Timestamp: [ '3/2/2020 9:48:53' ],
         Question: [ 'Answer' ] },
      range: { columnEnd: 3, columnStart: 1, rowEnd: 6, rowStart: 6 },
      source: {},
      triggerUid: '3xxxxxx825600xxx',
      values: [ '3/2/2020 9:48:53', 'Answer', 'Answer 2' ] 
    }
    

    如您所见,有几个属性可能对您的情况有用。 (namedValesvalues)。

    您可以选择使用哪个。

    一个例子:

    function onFormSubmit(e) {
    
      // Get values from response and put them in named variables
      var amountDict = {
        'Question 2' : e.namedValues['Question 2'],
        'Question' : e.namedValues['Question'],
        'Timestamp' : e.namedValues.Timestamp, 
        moreCols:'...', colAB: e.namedValues[10]
      };
    
      // Log them 
      console.log(amountDict);
    
      // Get values from response and put them in unnamed variables
      var amountList = [e.values[0],e.values[2], '...', e.values[3]];
      // Log them 
      console.log(amountList);
    
    }
    

    输出:

    【讨论】:

    • 非常感谢,这有帮助,我会尽快发布更新的代码
    【解决方案2】:

    试试这个:

    如果需要,不要忘记更改工作表名称。

    并创建触发器。

    function onFormSubmit(e) {
     var ss=SpreadsheetApp.getActive();
     var sh=ss.getSheetByName('Sheet1');
     sh.getRange(sh.getLastRow()+1,10,1,e.values.length).setValues([e.values]); 
    }
    

    【讨论】:

    • 我收到了这个 2020 年 2 月 28 日上午 10:07:25 错误类型错误:无法在 onFormSubmit(代码:4:16)读取 null 属性“getRange”
    • 嗯,我想第一个问题是你有 Sheet1 吗?
    • 我有不同的工作表名称,我已经在代码中更新了它
    • var ss= 正上方的行中输入Logger.log(JSON.stringify(e)); 并提交表单并告诉分享您的日志。
    猜你喜欢
    • 2020-06-09
    • 2012-06-28
    • 2015-06-07
    • 2018-01-07
    • 2020-10-14
    • 2022-01-26
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    相关资源
    最近更新 更多