Как читать данные формы Google с помощью скрипта приложения - PullRequest
0 голосов
/ 31 августа 2018

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

Я пробовал много других способов, они тоже не работают.

function myFunction() {
  var form = FormApp.openById('1_HABIBYRZ-zsEMuzMCnsrAOYFlQSKwaIhmeT1y2SY6Y');
  var formResponses = form.getResponses();

  MailApp.sendEmail ("test@appirio.com", "Form Submited: Foo feedback " + Date.now(), +formResponses);
}

Я также хочу знать, как отладить любую проблему в App Script.

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

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Другой ответ выше может работать, но он немного сложен. Чтобы позволить вам сохранить ответы формы в качестве переменной внутри вашей программы, что позволит вам отправить ее по электронной почте, вы можете сделать это:

 function formResponsesToArray() {
  var app = FormApp.openById(...),
  responses = app.getResponses(), stringResponses = []

  responses.forEach(function(r) {
    var response = []
    r.getItemResponses().forEach(function(i) {
      response.push(i.getResponse())
    })

    stringResponses.push(response)
  })

  Logger.log(stringResponses)
}

Который будет регистрировать массив ответов, подобных этому:

logger window of responses

0 голосов
/ 31 августа 2018

Я бы порекомендовал сделать это, заполнив ваши ответы в форме на листе Google, а затем экспортировать их в виде csv через вложение в электронное письмо. как так ниже. Важно убедиться, что активны правильные API, такие как Drive API, Gmail API и что ваши oauthScopes добавляются в манифест, если это необходимо.


редактирование моего ответа, чтобы рекомендовать ответ Стюартса. намного чище, проще и эффективнее.

function ExportToCSVCrntMonth(){
 var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); //change this to sheet name
 // Change the below line to get the folder where you want the CSV files stored.
 var folder = DriveApp.createFolder(ss.getName().toLowerCase().replace(/ /g,'_') + '_csv_' + new Date().getTime());
 fileName = ss.getName() + ".csv";
 var csvFile = convertRangeToCsvFileCrnt_(fileName, ss);
 folder.createFile(fileName, csvFile);

 var csvmail = folder.getFilesByName('your sheet name + .csv');
  MailApp.sendEmail({
  to: "your email ere",
  subject: "CSV attached",
  body: "body text",

  attachments: [csvmail.next()]
  });
 }

function convertRangeToCsvFileCrnt_(csvFileName, ss) {
var activeRange = ss.getDataRange();
 try {
   var data = activeRange.getValues();
   var csvFile = undefined;

   if (data.length > 1) {
   var csv = "";
   for (var row = 0; row < data.length; row++) {
    for (var col = 0; col < data[row].length; col++) {
      if (data[row][col].toString().indexOf(",") != -1) {
        data[row][col] = "\"" + data[row][col] + "\"";
       }
      }

    if (row < data.length-1) {
      csv += data[row].join(",") + "\r\n";
    }
    else {
      csv += data[row];
     }
    }
   csvFile = csv;
  }
   return csvFile;
  }
   catch(err) {
   Logger.log(err);
   Browser.msgBox(err);
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...