Google формирует ответы на существующие столбцы таблицы Google и поддерживает существующее форматирование - PullRequest
0 голосов
/ 04 января 2019

У меня есть существующая форма Google , и я ищу:

Изображение 1. вопроса формы Google.

1) ЕстьОтвет на вопрос (как вас зовут) в форме автоматически заполняется ( Лист 1, столбец C ) на этом существующем листе Google

Изображение2. Куда должны перейти данные формы Google

2) Отметка времени, которая создается при каждой отправке формы Google для автоматического заполнения ( Лист 1, столбец E ) вФормат ГГГГ-ММ-ДД.

3) Хотя эти ответы в форме Google будут записываться в эту электронную таблицу, будут времена, когда мне придется вручную входить и вводить информацию в последующих строках.

Возможно ли это сделать?Я новичок в том, чтобы вводить данные из форм Google в листы Google. Может ли кто-нибудь помочь с вышеуказанными вопросами?

1 Ответ

0 голосов
/ 05 января 2019

Хорошо.Пара вещей.

  1. Перейдите в меню Инструмент > Редактор сценариев .
  2. Назовите сценарий (возможно, «Отправка формы»)?) щелкнув текст « без названия проекта » в верхнем левом углу редактора.
  3. Заменить весь текст в code.gs на приведенный ниже код.(Измените код там, где указано).
  4. Затем перейдите к Редактировать > Триггеры текущего проекта .
  5. Нажмите ссылку, которая говорит: Триггеры не настроены.Нажмите здесь, чтобы добавить его сейчас.
  6. В разделе Выполнить выберите onSubmit .
  7. В разделе События выберите в отправке формы .
  8. Нажмите сохранить .
  9. Теперь вам нужно вернуться в редактор и нажать кнопку воспроизведения.Это запустит функцию и инициирует процесс авторизации.Щелкните по подсказкам и примите.

Теперь, каждый раз при отправке формы имя и метка времени копируются.

function onSubmit() {

    var spreadsheet = SpreadsheetApp.getActive();

    var responseSheet = spreadsheet.getSheetByName('Form Responses 1');
    var copyToSheet = spreadsheet.getSheetByName('Target');

    var rLastRow = responseSheet.getLastRow();
    var tLastRow = copyToSheet.getLastRow() + 1;
    var lastCol = responseSheet.getLastColumn();

    var values = responseSheet
        .getRange(rLastRow, 1, 1, lastCol)
        .getValues()[0];

    var timestamp = Utilities.formatDate(new Date(values[0]), Session.getScriptTimeZone(), 'yyyy-MM-dd');

    var name = values[1];

    copyToSheet.getRange('C' + tLastRow).setValue(name);
    copyToSheet.getRange('E' + tLastRow).setValue(timestamp).setNumberFormat('yyyy-MM-dd');
}
...