微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Google Apps 脚本中的附件问题 修改点:修改后的脚本:参考:

如何解决Google Apps 脚本中的附件问题 修改点:修改后的脚本:参考:

我在下面有这个代码

    reportPDF = doc.getAs('application/pdf')
    reportPDF.setName('Automated report - '+ rows[0][0] + ".pdf");
    
    var file1 = destinationFolder.createFile(reportPDF);  
    var folder = DriveApp.getFolderById("19Rv2f-Ud4Ncdzu-1MT1vUmh49pOKfKZX");
    var file2 = folder.getFilesByName("test.pdf");

    DriveApp.getFileById(doc.getId()).setTrashed(true);

    if(file2.hasNext()){
          emails.forEach(function(email) {
          MailApp.sendEmail(email,"Automated Report - " + rows[0][0],"Hello!",{
          name: 'Good Practices Report',attachments: 
            [
            file1.getAs(MimeType.PDF),file2.next().getAs(MimeType.PDF)
            ]

                                       });
                          })
      }

使用此代码,我应该会收到一封包含两个附件(file1 和 file2)的电子邮件。但是,当我运行它时,出现以下错误

异常:无法检索下一个对象:迭代器已到达末尾。 (第 158 行,文件“电子邮件”)

在这文件夹中,我只有一个名为 test.pdf 的文件,但代码仍然在 第 158 行指责错误:file2.next().getAs(MimeType.PDF)。

有人知道会发生什么吗?

解决方法

修改点:

  • 我认为您出现 Cannot retrieve the next object: iterator has reached the end. 问题的原因是循环中使用了 file2.next()。在这种情况下,我认为在运行 if(file2.hasNext()){ 之前,迭代器可能已完成。

那么,当你想使用file1.getAs(MimeType.PDF)file2.next().getAs(MimeType.PDF)中的attachments: In this folder,I just have one file with the name test.pdf的文件时,下面的修改如何?

修改后的脚本:

请按如下方式修改您的脚本。

从:
if(file2.hasNext()){
  emails.forEach(function(email) {
    MailApp.sendEmail(email,"Automated Report - " + rows[0][0],"Hello!",{
      name: 'Good Practices Report',attachments: [
        file1.getAs(MimeType.PDF),file2.next().getAs(MimeType.PDF)
      ]
    });
  })
}
到:
if (file2.hasNext()) {
  var file2Pdf = file2.next().getAs(MimeType.PDF);  // Added
  emails.forEach(function(email) {
    MailApp.sendEmail(email,file2Pdf  // Modified
      ]
    });
  })
}
  • 在此修改中,file1.getAs(MimeType.PDF)file2Pdf 的文件在循环中用作 attachments

参考:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。