2

I'm currently trying to make a Google Sheet that will fill in a Google Doc with info so that I can better run my community's local job board (I know Indeed is 10x better but I work with a lot of people who are bad at computers XD). So far I have all the text replacement working, however, I can't figure out how to insert an image into the document from an image that is in the cell on my Spreadsheet. I have found some solutions on here for using a Google Drive url, but in this scenario, I'm wanting to make it so that the image can simply be inserted into a cell and then put in my Google Doc.

I've also seen lots of people use a ".replaceTextWithImage" command, but when I try it it doesn't work.

Here's my code

//Creates menu option on spreadsheet
function onOpen() {
  const ui = SpreadsheetApp.getUi();
  const menu = ui.createMenu('AutoFill Docs');
  menu.addItem('Create New Docs', 'createNewGoogleDocs');
  menu.addToUi();

}

//Defines where to get template and info from
function createNewGoogleDocs() {
 
  const googleDocTemplate = DriveApp.getFileById('14MJNd37pn6D-EmNKCQzXXvxJCcOAoB3KS-TlDgZuWMI');
  const destinationFolder = DriveApp.getFolderById('120Sb_CJJlmz5NzJW8W3DB4TNuC4kdD3e');
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('JobBoard');
  const rows = sheet.getDataRange().getValues();
  
  rows.forEach(function(row, index) {
    if (index === 0) return;
    if (row[9]) return;
    const copy = googleDocTemplate.makeCopy(`${row[1]}, ${row[0]} Printout`, destinationFolder);
    const doc = DocumentApp.openById(copy.getId())
    const body = doc.getBody();
    const friendlyDate = new Date(row[2]).toLocaleDateString();

//Replacing text
    body.replaceText('{{Company}}', row[1]);
    body.replaceText('{{jobTitle}}', row[0]);
    body.replaceText('{{datePosted}}', friendlyDate);
    body.replaceText('{{Description}}', row[3]);
    body.replaceText('{{Qualifications}}', row[5]);
    body.replaceText('{{Wage}}', row[4]);
    body.replaceText('{{Apply}}', row[6]);
    body.replaceText("{{Upload Image}}", ''); //this is line giving me trouble
  

    doc.saveAndClose();
    const url = doc.getUrl();
    sheet.getRange(index + 1, 10).setValue(url)
    
  })

}

Here's my files for reference:

https://docs.google.com/spreadsheets/d/1cySHogAxcUgzr0hsJoTyPZakKQkM6uIOtmyPzcMoJUM/edit#gid=0

https://docs.google.com/document/d/14MJNd37pn6D-EmNKCQzXXvxJCcOAoB3KS-TlDgZuWMI/edit

Thanks!

  • 1
    Hey Josh, I dont think its ```.replaceTextWithImage```. Try using ```.replaceTextToImage(body, replaceText, image, width)```. References: https://gist.github.com/tanaikech/f84831455dea5c394e48caaee0058b26 – Nami888 Apr 12 '22 at 00:48
  • Oh yea the files you shared cant be viewed, it requires access. Might wanna change it to view/comment so we can make a copy and modify the code for testing. thx – Nami888 Apr 12 '22 at 00:49

0 Answers0