Написание скрипта для автоматического создания нового листа Google после ввода данных - PullRequest
0 голосов
/ 28 мая 2019

В настоящее время у меня есть лист Google, который получает данные посредством отправки формы от третьего лица.Я пытаюсь написать скрипт, который создает новый лист каждый раз, когда передается уникальный идентификатор пользователя.

Например, если у меня есть 5 заявок, в которых идентификаторы пользователей: A, B, B, C, C, я пытаюсь, чтобы скрипт создал уникальный лист для A, B и C и сгруппировал дубликат UserIDпредставления в этом листе.Я полагаю, что сводная таблица, отфильтрованная по UserID, может выполнить вторую половину этого, но я еще не смог выяснить создание листа, чтобы протестировать его.

Пока что это код, с которым я работал:

function formSheet(e) {
  var sheetName = e.namedValues['user-id'][0];
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(sheetName);
if (!sheet) {
  sheet = ss.insertSheet(sheetName);
  var formSheet = e.range.getSheet();
  var headers = formSheet.getRange(1, 1, 1, formSheet.getLastColumn());
  headers.copyTo(sheet.getRange(1, 1));
}
sheet.appendRow(e.values);
}`

Для справки, лист с данными называется «представления», а данные, которые мне нужны, находятся подзаголовок «User-Id» в столбце 2

1 Ответ

0 голосов
/ 29 мая 2019

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

Вы использовали «user-id» в своем скрипте и «User-Id» в своем вопросе, так что же это?

function formsheet(e) {
  Logger.log(JSON.stringify(e));
  var ss=SpreadsheetApp.openById('ssid');
  var name=e.namedValues['user-Id'][0];
  var shts=ss.getSheets();
  if(shts.indexOf(name)==-1) {
    var sh=ss.insertSheet(name);
    var hdrs=e.range.getSheet().getRange(1,1,1,e.range.getSheet().getLastColumn()).getValues()[0];
    sh.appendRow(hdrs);
  }else{
      var sh=ss.getSheetByName(name);
  }
  sh.appendRow(e.values)  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...