В скрипте Google-формы невозможно отправить электронную таблицу как прикрепленный документ к почте. - PullRequest
0 голосов
/ 24 марта 2020

После заполнения формы Google я преобразовываю Вопросы / Ответы в электронную таблицу, чтобы отправить ее кому-нибудь. - Если я НЕ конвертирую, электронная таблица будет получена в моем почтовом ящике в виде файла PDF. Все нормально. - Если я выполняю какое-либо преобразование (в следующем коде: .getAs (MimeType.GOOGLE_SHEETS), возникает исключение.

function onSubmit(e) {
...
var tempSheet = SpreadsheetApp.create( "reponses_candidat_" + candidat + "-" + dt + ".xlsx");

for (i in itemResponse) {

    var title = itemResponse[i].getItem().getTitle();
    var answer = itemResponse[i].getResponse().toString();

    tempSheet.appendRow( [ title, answer] )  ;
}

  try {
    MailApp.sendEmail(mail,
            "Answer for 'FormulaireDeTest1' for " + candidat + ", filled at " + dt,
            "results are in attached file.\n\n",
            {name:"De la part du google-form", attachments: [tempSheet.getAs(MimeType.GOOGLE_SHEETS)]});
  } catch(err) {
    console.log("unable to send mail. err > " + err);
  } 

И исключение: Исключение: преобразование формата application / pdf в формат application / vnd .google-apps.spreadsheet недоступен.

Исходный документ представляет собой электронную таблицу, а приложение MailApp работает так же, как и PDF.

Какая-то идея?

1 Ответ

0 голосов
/ 24 марта 2020

Есть способ решить проблему. Это отправить ссылку на файл диска:

  var xFile;

    // ajouter "oauthScopes": "https://www.googleapis.com/auth/drive.readonly"
  try {
    xFile = DriveApp.getFileById(tempSheet.getId());
    console.log("DriveApp.getFileById ok");
  } catch(err) {
     console.log("Drive.Files.get > err > " + err);
  }

  try {
    xFile.setSharing( DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
    console.log("setSharing ok");
  } catch(err) {
     console.log("xFile.setSharing > err > " + err);
  }

  console.log( "owner.mail=" + tempSheet.getOwner().getEmail());

  var sInfos = "";
  try {    
    sInfos = "file_name: " + tempSheet.getName() + "\n" + "url:" + "https://drive.google.com/open?id=" + tempSheet.getId();

    MailApp.sendEmail(mail,
                    "Test du questionnaire 'FormulaireDeTest1' pour " + candidat + ", remplit a " + dt,
                    "Les resultats sont en pièce jointe.\n\n" +
                    sInfos,
                    {name:"De la part du google-form"} );
  }catch(err) {
    console.log("impossible d'emettre un mail > err > " + err);
  }

С уважением.

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