【问题标题】:In google-form script, unable to send spreadSheet as attached document of a mail在 google-form 脚本中,无法将电子表格作为邮件的附件发送
【发布时间】:2020-03-24 10:17:36
【问题描述】:

填写 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 一样。

有什么想法?

【问题讨论】:

    标签: spreadsheet google-forms


    【解决方案1】:

    有办法解决这个问题。这会发送云端硬盘文件上的链接:

      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);
      }
    

    最好的问候。

    【讨论】:

      猜你喜欢
      • 2020-10-01
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 2020-04-14
      • 2020-12-15
      • 1970-01-01
      • 2013-07-11
      相关资源
      最近更新 更多