Как создать новую строку в конце существующего листа в таблицах Google после заполнения формы Google? - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь сохранить ответы из связанной формы Google в существующую таблицу Google.Точнее, в электронной таблице показаны запросы на освобождение сотрудника с указанием причины увольнения сотрудника, количества запрошенных дней, запрошенной даты, имени руководителя и т. Д. В основном, форма запрашивает у сотрудника эту информацию.
Спасибо!

Я пытаюсь добиться сохранения информации об ответе в уже созданной электронной таблице.Согласно документации Google , доступны только два варианта:
1) Создать новую электронную таблицу: создать электронную таблицу для ответов в Google Sheets
2) Выбрать существующую электронную таблицу: выбрать из существующих электронных таблиц вGoogle Sheets для хранения ответов
В случае варианта № 2 я могу сохранить ответы в той же электронной таблице, НО они сохраняются на новом листе;Я пытаюсь сохранить ответы на том же листе .

Я знаю, что в Google Form есть редактор скриптов.Можно ли запустить функцию, которая отправляет ответы в электронную таблицу?Может быть, что-то вроде этого?

function sendToSpreadSheet(e)
{
  var ss = SpreadsheetApp.openById("abc1234567");
  // Send response to spreadsheet

  // Populate cells accordingly
}

У меня нет большого опыта работы с Google Forms, поэтому я не знаю, как решить эту проблему.Любые предложения приветствуются.

1 Ответ

1 голос
/ 09 мая 2019

Попробуйте это:

Вы должны указать идентификатор таблицы и имя листа. А также создайте триггер onFormSubmit для электронной таблицы.

function saveResponse(e) {
  SpreadsheetApp.getActive().getSheetByName('SheetName').append(e.values);
}

или

function saveResponse(e) {
  SpreadsheetApp.openById('id').getSheetByName('SheetName').append(e.values);
}

Вы можете создать триггер с чем-то вроде этого:

function createSetResponseTrigger(){
  createTrigger('setResponse');
}

function createTrigger(funcname) {
  if(!isTrigger(funcname)) {
    ScriptApp.newTrigger(funcname).forSpreadsheet(SpreadsheetApp.getActive()).onFormSubmit().create();
  }
}

и это

function isTrigger(funcName){
  var r=false;
  if(funcName){
    var allTriggers=ScriptApp.getProjectTriggers();
    for(var i=0;i<allTriggers.length;i++){
      if(funcName==allTriggers[i].getHandlerFunction()){
        r=true;
        break;
      }
    }
  }
  return r;
}

или вы можете просто создать его вручную с помощью меню «Правка» / «Триггеры текущего проекта».

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