Скрипт Google Sheets для автоматического поиска ячеек с текущей датой, копирования всей строки и отправки по электронной почте - PullRequest
0 голосов
/ 06 февраля 2020

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

Я пытаюсь написать сценарий, который будет отправлять мне каждый день в указанное c время электронное письмо со ссылкой на файл Excel / лист Google, в котором будет в основном копия всех ответов от сегодняшние формы. (с отметкой даты текущего дня).

Кто-нибудь может мне помочь с этим начать?

Заранее спасибо!

Ответы [ 2 ]

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

Я думаю, что вы должны начать писать код.

Сначала я рекомендую прочитать о Events из здесь . Там вы можете найти два триггера:

  • События Google Sheets - Отправка формы
  • События Google Form - От отправки

Обратите внимание на разницу между двумя типы триггеров: простой и устанавливаемый

Выберите один из них и используйте его для запуска некоторой MailApp.sendEmail() функции

Тогда я настоятельно рекомендую прочитать документацию классов SpreadSheet, Sheet и Range и попытаться написать некоторый код. Когда вы обнаружите проблему - напишите здесь с кодом, который не работал, и опишите вашу проблему.

Удачи!

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

То, что вам нужно, это

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

function bindATimeTriggerToMe() {
  var sheet = SpreadsheetApp.openById("PASTE-ID-OF-SPREADSHEET").getSheetByName("PASTE-NAME-OF-SHEET");
  var timestamps = sheet.getRange(1,1,sheet.getLastRow(), 1).getValues();

  var today = new Date();
  var i;
  for (i = timestamps.length-1; i > 0; i--){
    var day = timestamps[i][0];
    if (day.setHours(0,0,0,0) != today.setHours(0,0,0,0)){
      var firstRow = i + 2;
      break;
    }
  }
  if (firstRow){
    var rows = sheet.getLastRow()-firstRow+1;
    var columns = sheet.getLastColumn();
    var values = sheet.getRange(firstRow, 1, rows, columns).getValues();
    var newSheet = SpreadsheetApp.create("results from "+ today);
    newSheet.getSheetByName("Sheet1").getRange(1, 1, rows, columns).setValues(values);
    var url = newSheet.getUrl();

    var recipient ="XXX@gmail.com";
    var subject = "results from " + today;
    var body = "Click on the following link: "+url;
    GmailApp.sendEmail(recipient, subject, body)
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...