GAS:如何检查特定文件夹中是否存在文件,如果存在则转到下一个迭代

时间:2018-12-10 19:57:01

标签: google-sheets

我正在编写一个执行以下操作的脚本:

  • 在满足以下两个条件时,向注册我们活动的人员发送一封带有附件(例如付款证明)的电子邮件:付款已经处理,如果他们还没有收到付款证明,
  • 使用新副本中的一些变量创建现有文件的副本(这很好用)以个性化付款证明。

文件副本将获得一个新名称(个性化)。 如果文件已经存在,我似乎无法正确检查脚本。

谁能帮助我?

function createDocument(e) {
  var headers = Sheets.Spreadsheets.Values.get('SHEET ID', 'Lijst!A1:G');
  var lid = Sheets.Spreadsheets.Values.get('SHEET ID', 'Lijst!A2:G');
  var templateId = 'TEMPLATE ID';

  for (var j = 0; j < lid.values.length; j++) {

    if (lid.values[j][6] == 'ok' && lid.values[j][7] != 'Bewijs Verzonden') {

      //collect the data from the member
      var voornaam = lid.values[j][0];
      var familienaam = lid.values[j][1];
      var email = lid.values[j][2];
      var aantal = lid.values[j][3];
      var betaaldop = lid.values[j][5];


      //Make a copy of the template file
      var documentId = DriveApp.getFileById(templateId).makeCopy().getId();
      var doc = DriveApp.getFileById(documentId);
      var docname = 'Betalingsbewijs Reunie 2019 voor ' + familienaam + ' ' + voornaam + '.pdf';
      //var filecheck = DriveApp.getFolderById('FOLDER ID');
      var filecheck = DriveApp.getFilesByName(docname);
      if (filecheck.hasNext()) {
        Logger.log("No File Found");
      } else {

        //Get the document body as a variable
        var body = DocumentApp.openById(documentId).getBody();


        //Insert the data from spreadsheet
        body.replaceText('<<Voornaam>>', voornaam)
        body.replaceText('<<Naam>>', familienaam)
        body.replaceText('<<Aantal deelnemers>>', aantal)
        body.replaceText('<<Betaald op>>', betaaldop)

        DocumentApp.openById(documentId).saveAndClose();

        //move file to new folder and remove from parent folder

        var file = DriveApp.getFileById(documentId);
        file.getParents().next().removeFile(file);
        DriveApp.getFolderById('FOLDER ID').addFile(file);

        var pdfname = file.setName('Betalingsbewijs Reunie 2019 voor ' + familienaam + ' ' + voornaam + '.pdf');
        var steil = "email@gmail.com";

        var blob = pdfname.getBlob().getAs('application/pdf');

        var subject = 'Betalingsbewijs Reunie 2019 voor ' + familienaam + ' ' + voornaam + ' met ' + aantal + 'deelnemer(s)';
        var htmlBody =
          "Beste " + voornaam + ", " +
          "<br/>" +
          "<br/>" +
          "<br/>Bedankt voor uw inschrijving voor de Steil reünie op zaterdag 26 januari 2019." +
          "<br/>Wij hebben uw betaling goed ontvangen." +
          "<br/>Uw deelname aan de reünie is nu definitief in orde." +
          "<br/>In bijlage kan u uw betalingsbewijs terugvinden in pdf." +
          "<br/><br/>Indien u nog vragen heeft kan u ons steeds bereiken via reunie.steil@gmail.com." +
          "<br/>Met verplegende groeten," +
          "<br/>Het Steil Reünie team";


        var optAdvancedArgs = {
          name: "Steil Reünie 2019",
          htmlBody: htmlBody,
          replyTo: email,
          cc: steil,
          attachments: [blob]
        };

        GmailApp.sendEmail(email, subject, body, optAdvancedArgs);

        var ConfirmationRange = "Lijst!H" + [j + 2];
        SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(ConfirmationRange).setValue('Bewijs Verzonden');

      }
    }
  }
}

0 个答案:

没有答案