Скрипт приложения Google - обновление последней строки листа - PullRequest
0 голосов
/ 27 марта 2020

У меня есть скрипт, связанный с листом Google, который вызывается после отправки формы Google.

На самом деле я могу получить все строки или последний, но в случае обновления одного ответа формы мне нужно найти этот строка обновлена ​​для моего лечения.

Есть ли способ сделать это?

Это мои два случая:

// Getting last row data
function getSpreadSheetLastRowData() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var row = sheet.getLastRow();
  return sheet.getRange('A'+row+':BG'+row).getValues();
}

// Getting all rows data
function getSpreadSheetAllData() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var row = sheet.getLastRow();
  return sheet.getRange('A2:BG'+row).getValues();
}

Ответы [ 2 ]

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

Вам потребуется написать обработчик события для объекта события onFormSubmit и прикрепить его к электронной таблице.

Из таблицы, связанной с вашей формой go до Tools > Script Editor. Здесь напишите функцию для установки триггера:

function installTriggerToSpreadsheet() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ScriptApp.newTrigger('sumbissionHandler')
  .forSpreadsheet(ss)
  .onFormSubmit()
  .create();
}

Теперь ваш триггер будет обрабатывать отправку формы, вызывая функцию submissionHandler внутри контекста электронной таблицы. Это означает, что вы можете прочитать затронутую строку, используя такую ​​функцию:

function submissionHandler(e) {
 var affectedRow = e.range.getRow();

 // ... Apply your treatment.
}

Ссылки:

Триггеры

Объекты события

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

Если у вас есть скрипт, который запускается при отправке формы, тогда возьмите объект события, давайте назовите его e. Тогда e.range - это диапазон, который был отредактирован в связанном листе. Таким образом, e.range.getRow() - это строка, а e.range.getSheet().getName() - это имя связанного листа.

Форма отправки объекта для электронной таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...