Для L oop для переменных объекта события в Google App Script - PullRequest
0 голосов
/ 28 февраля 2020

Опять новичок в сценариях приложения. Я пытаюсь сделать следующее

Как сохранить значения массива в переменной для объекта события во время отправки формы, т.е. мне нужно получить все значения из столбца ответов формы на листе J в AF из одной строки в переменную

что-то вроде значения var = j, k, l, m, n, o (очевидно, как строка без каких-либо знаков разделения, например, .et c)

инстинктивно должен быть лучший способ получить все значения в переменной? попытался l oop, так как диапазон начинается с промежуточных столбцов (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);
}

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

Объект e из onFormSubmit(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' ] 
}

Как видите, есть несколько свойств, которые могут быть полезны для вашего случая. (namedVales и values).

Вам решать, какой из них использовать.

Пример:

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);

}

Вывод:

enter image description here

0 голосов
/ 28 февраля 2020

Попробуйте:

Не забудьте изменить имя листа, если это необходимо.

И создать триггер.

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]); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...