0
votes

I would like to have the OnEdit trigger to be triggered only when one single cell is edited.

For this example, I would like:

Name of the script function to be triggered: createBulkPDFs Cell that triggers OnEdit: CC2 Name of the Current Sheet: people

The script createBulkPDFs creates a pdf out of the information I input into the google sheet named people.

Thank you.

Here is the script I have right now:


 const docFile = DriveApp.getFileById("1GY-3scG8GSNWxGrLbcTghvfKJrTo3DOGvVoC0P4_rvw");
 const tempFolder = DriveApp.getFolderById("1IJvto0dOAqbauUPF50dhlBabJL4waBUG");
 const pdfFolder = DriveApp.getFolderById("1UkcLY4gjjAcqixLNaZX3BKcUJg9RG4l4");
 const currentSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("people");

 const data = currentSheet.getRange(2,1,1,80).getDisplayValues();

 data.forEach(row => {
   createPDF(row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16],row[17], row[18], row[19], row[20], row[21], row[22], row[23], row[24], row[25], row[26], row[27], row[28], row[29], row[30], row[31], row[32], row[33], row[34], row[35], row[36], row[37], row[38], row[39], row[40], row[41], row[42], row[43], row[44], row[45], row[46], row[47], row[48], row[49], row[50], row[51], row[52], row[53], row[54], row[55], row[56], row[57], row[58], row[59], row[60], row[61], row[62], row[63], row[64], row[65], row[66], row[67], row[68], row[69], row[70], row[71], row[72], row[73], row[74], row[75], row[76], row[77], row[78], row[79], row[0] + " " + row[1], docFile, tempFolder, pdfFolder)
 });
 }

function createPDF(Community, Date, A1Image, A1Description, A1Coordinates, A1Issue, Employee, A1Tag, A1Score, A1Suggestion, A2Image, A2Description, A2Coordinates, A2Issue, A2Tag, A2Score, A2Suggestion, 
A3Image, A3Description, A3Coordinates, A3Issue, A3Tag, A3Score, A3Suggestion, 
A4Image, A4Description, A4Coordinates, A4Issue, A4Tag, A4Score, A4Suggestion, 
A5Image, A5Description, A5Coordinates, A5Issue, A5Tag, A5Score, A5Suggestion, 
A6Image, A6Description, A6Coordinates, A6Issue, A6Tag, A6Score, A6Suggestion, 
A7Image, A7Description, A7Coordinates, A7Issue, A7Tag, A7Score, A7Suggestion, 
A8Image, A8Description, A8Coordinates, A8Issue, A8Tag, A8Score, A8Suggestion, 
A9Image, A9Description, A9Coordinates, A9Issue, A9Tag, A9Score, A9Suggestion, 
A10Image, A10Description, A10Coordinates, A10Issue, A10Tag, A10Score, A10Suggestion, 
A11Image, A11Description, A11Coordinates, A11Issue, A11Tag, A11Score, A11Suggestion, 
 



pdfName, docFile, tempFolder, pdfFolder) {

//doc id                   1GY-3scG8GSNWxGrLbcTghvfKJrTo3DOGvVoC0P4_rvw
 //temp folder id           1IJvto0dOAqbauUPF50dhlBabJL4waBUG
 // pdf folder id          1UkcLY4gjjAcqixLNaZX3BKcUJg9RG4l4

 const tempFile = docFile.makeCopy(tempFolder);
 const tempDocFile = DocumentApp.openById(tempFile.getId());
 const body = tempDocFile.getBody();
 body.replaceText("{Community}",Community);
 body.replaceText("{Date}",Date);
 body.replaceText("{A1Image}",A1Image);
 body.replaceText("{A1Description}",A1Description);
 body.replaceText("{A1Coordinates}",A1Coordinates);
 body.replaceText("{A1Issue}",A1Issue);
 body.replaceText("{Employee}",Employee);
 body.replaceText("{A1Tag}",A1Tag);
 body.replaceText("{A1Score}",A1Score);
 body.replaceText("{A1Suggestion}",A1Suggestion);

 body.replaceText("{A2Image}",A2Image);
 body.replaceText("{A2Description}",A2Description);
 body.replaceText("{A2Coordinates}",A2Coordinates);
 body.replaceText("{A2Issue}",A2Issue);
 body.replaceText("{A2Tag}",A2Tag);
 body.replaceText("{A2Score}",A2Score);
 body.replaceText("{A2Suggestion}",A2Suggestion);

 body.replaceText("{A3Image}",A3Image);
 body.replaceText("{A3Description}",A3Description);
 body.replaceText("{A3Coordinates}",A3Coordinates);
 body.replaceText("{A3Issue}",A3Issue);
 body.replaceText("{A3Tag}",A3Tag);
 body.replaceText("{A3Score}",A3Score);
 body.replaceText("{A3Suggestion}",A3Suggestion);

 body.replaceText("{A4Image}",A4Image);
 body.replaceText("{A4Description}",A4Description);
 body.replaceText("{A4Coordinates}",A4Coordinates);
 body.replaceText("{A4Issue}",A4Issue);
 body.replaceText("{A4Tag}",A4Tag);
 body.replaceText("{A4Score}",A4Score);
 body.replaceText("{A4Suggestion}",A4Suggestion);


 body.replaceText("{A5Image}",A5Image);
 body.replaceText("{A5Description}",A5Description);
 body.replaceText("{A5Coordinates}",A5Coordinates);
 body.replaceText("{A5Issue}",A5Issue);
 body.replaceText("{A5Tag}",A5Tag);
 body.replaceText("{A5Score}",A5Score);
 body.replaceText("{A5Suggestion}",A5Suggestion);


 body.replaceText("{A6Image}",A6Image);
 body.replaceText("{A6Description}",A6Description);
 body.replaceText("{A6Coordinates}",A6Coordinates);
 body.replaceText("{A6Issue}",A6Issue);
 body.replaceText("{A6Tag}",A6Tag);
 body.replaceText("{A6Score}",A6Score);
 body.replaceText("{A6Suggestion}",A6Suggestion);


 body.replaceText("{A7Image}",A7Image);
 body.replaceText("{A7Description}",A7Description);
 body.replaceText("{A7Coordinates}",A7Coordinates);
 body.replaceText("{A7Issue}",A7Issue);
 body.replaceText("{A7Tag}",A7Tag);
 body.replaceText("{A7Score}",A7Score);
 body.replaceText("{A7Suggestion}",A7Suggestion);


 body.replaceText("{A8Image}",A8Image);
 body.replaceText("{A8Description}",A8Description);
 body.replaceText("{A8Coordinates}",A8Coordinates);
 body.replaceText("{A8Issue}",A8Issue);
 body.replaceText("{A8Tag}",A8Tag);
 body.replaceText("{A8Score}",A8Score);
 body.replaceText("{A8Suggestion}",A8Suggestion);


 body.replaceText("{A9Image}",A9Image);
 body.replaceText("{A9Description}",A9Description);
 body.replaceText("{A9Coordinates}",A9Coordinates);
 body.replaceText("{A9Issue}",A9Issue);
 body.replaceText("{A9Tag}",A9Tag);
 body.replaceText("{A9Score}",A9Score);
 body.replaceText("{A9Suggestion}",A9Suggestion);


 body.replaceText("{A10Image}",A10Image);
 body.replaceText("{A10Description}",A10Description);
 body.replaceText("{A10Coordinates}",A10Coordinates);
 body.replaceText("{A10Issue}",A10Issue);
 body.replaceText("{A10Tag}",A10Tag);
 body.replaceText("{A10Score}",A10Score);
 body.replaceText("{A10Suggestion}",A10Suggestion);


 body.replaceText("{A11Image}",A11Image);
 body.replaceText("{A11Description}",A11Description);
 body.replaceText("{A11Coordinates}",A11Coordinates);
 body.replaceText("{A11Issue}",A11Issue);
 body.replaceText("{A11Tag}",A11Tag);
 body.replaceText("{A11Score}",A11Score);
 body.replaceText("{A11Suggestion}",A11Suggestion);



 
 //IMAGES
 // Insert image1
  if(A1Image) {
 var element = body.findText("Image1").getElement(); 
 var blob = UrlFetchApp.fetch(A1Image).getBlob(); 
 var image = element.getParent().asParagraph().insertInlineImage(0, blob); 
  image.setHeight(400);
  image.setWidth(600);}
  
    // Insert image2
  if(A2Image) {
 var element = body.findText("Image2").getElement(); 
 var blob = UrlFetchApp.fetch(A2Image).getBlob(); 
 var image = element.getParent().asParagraph().insertInlineImage(0, blob); 
  image.setHeight(400);
  image.setWidth(600);}

 // Insert image3
  if(A3Image) {
 var element = body.findText("Image3").getElement(); 
 var blob = UrlFetchApp.fetch(A3Image).getBlob(); 
 var image = element.getParent().asParagraph().insertInlineImage(0, blob); 
  image.setHeight(400);
  image.setWidth(600);}

   // Insert image4
  if(A4Image) {
 var element = body.findText("Image4").getElement(); 
 var blob = UrlFetchApp.fetch(A4Image).getBlob(); 
 var image = element.getParent().asParagraph().insertInlineImage(0, blob); 
  image.setHeight(400);
  image.setWidth(600);}

   // Insert image5
  if(A5Image) {
 var element = body.findText("Image5").getElement(); 
 var blob = UrlFetchApp.fetch(A5Image).getBlob(); 
 var image = element.getParent().asParagraph().insertInlineImage(0, blob); 
  image.setHeight(400);
  image.setWidth(600);}

   // Insert image6
  if(A6Image) {
 var element = body.findText("Image6").getElement(); 
 var blob = UrlFetchApp.fetch(A6Image).getBlob(); 
 var image = element.getParent().asParagraph().insertInlineImage(0, blob); 
  image.setHeight(400);
  image.setWidth(600);}

   // Insert image7
  if(A7Image) {
 var element = body.findText("Image7").getElement(); 
 var blob = UrlFetchApp.fetch(A7Image).getBlob(); 
 var image = element.getParent().asParagraph().insertInlineImage(0, blob); 
  image.setHeight(400);
  image.setWidth(600);}

   // Insert image8
  if(A8Image) {
 var element = body.findText("Image8").getElement(); 
 var blob = UrlFetchApp.fetch(A8Image).getBlob(); 
 var image = element.getParent().asParagraph().insertInlineImage(0, blob); 
  image.setHeight(400);
  image.setWidth(600);}

   // Insert image9
  if(A9Image) {
 var element = body.findText("Image9").getElement(); 
 var blob = UrlFetchApp.fetch(A9Image).getBlob(); 
 var image = element.getParent().asParagraph().insertInlineImage(0, blob); 
  image.setHeight(400);
  image.setWidth(600);}

   // Insert image10
  if(A10Image) {
 var element = body.findText("Image10").getElement(); 
 var blob = UrlFetchApp.fetch(A10Image).getBlob(); 
 var image = element.getParent().asParagraph().insertInlineImage(0, blob); 
  image.setHeight(400);
  image.setWidth(600);}

   // Insert image11
 if(A11Image) {
 var element = body.findText("Image11").getElement(); 
 var blob = UrlFetchApp.fetch(A11Image).getBlob(); 
 var image = element.getParent().asParagraph().insertInlineImage(0, blob); 
  image.setHeight(400);
  image.setWidth(600);}



 tempDocFile.saveAndClose();
  //This makes a blob out of content of the tempFile
 const pdfContentBlob = tempFile.getAs(MimeType.PDF);
 
 //This creates a PDF out of the blob, names it "Our New PDF" and sends it into the pdfFolder
 pdfFolder.createFile(pdfContentBlob).setName(pdfName);
  //This is to remove file from the tempFolder once the tempFile has been created
 tempFolder.removeFile(tempFile);
 
}```