Insert all photos from one google drive folder into google Sheet?

Viewed 216

I am not much of a coder, and only smart enough to modify code slightly. But I am hoping someone can help me. I am looking to upload all images in a google folder into a spread sheet with a script. I need the folder name to be changeable based on a cell, so I can change the name of the cell to a different folder run the script and the script will bring in all photos from the folder. Some folders might have 5 photos, others might have 25 photos. I have been able to figure it out but only if I reference the actual photo, and not just reference the name of the folder and have it import all. Any and all help is thanked in advance.

2 Answers
function insertImages() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const nameF = 'Folder'; // Sheet Name of the sheet containing the Folder Name
  const rangeF = 'A1'; // Cell containing the Folder Name
  const nameT = 'Target'; // Sheet Name of the sheet to insert images
  let row = 2; // Starting row to insert
  const col = 1; // Column to insert
  
  const sheet = ss.getSheetByName(nameT);
  const folderName = ss.getSheetByName(nameF).getRange(rangeF).getValue();
  const folders = DriveApp.getFoldersByName(folderName);
  while (folders.hasNext()) {
    const folder = folders.next();
    const files = folder.getFiles();
    while (files.hasNext()) {
      const file = files.next();
      sheet.insertImage(file.getBlob(), col, row++);
    }
  }
}

by ID

function importImgs1() {
  var folderID = '1ZfWEnxtKQiuz8V9j2ckgIZRHRMmYc7rH';
  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('import images');
  sh.clear();
  sh.appendRow(["name", "image"]);
  var folder = DriveApp.getFolderById(folderID);
  var data = [];
  var files = folder.getFiles();
  while (files.hasNext()) {
    var file = files.next();
    data = [ 
      file.getName(),
      "=image(\"https://docs.google.com/uc?export=download&id=" + file.getId() +"\")",
    ];
    sh.appendRow(data);
  }
}

by Name

function importImgs2() {
  var folderName = 'img';
  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('import images by name');
  sh.clear();
  sh.appendRow(["name", "image"]);
  var folders = DriveApp.getFoldersByName(folderName);
  var foldersnext = folders.next();
  var data = [];
  var files = foldersnext.getFiles();
  while (files.hasNext()) {
    var file = files.next();
    data = [ 
      file.getName(),
      "=image(\"https://docs.google.com/uc?export=download&id=" + file.getId() +"\")",
    ];
    sh.appendRow(data);
  }
}
Related