แยกFolderรูปGoogleForm เป็น1Folderต่อ1ผู้กรอก

เคยไหมที่เมื่อสร้าง Google Form ที่ต้องอัพโหลดรูปภาพเยอะๆ แต่บางทีต้องการใช้งานรูปภาพแค่ของผู้กรอกบางคน ซึ่งปัจจุบันรูปภาพที่ถูกอัพโหลดขึ้นมาจะอยู่รวมกัน วันนี้เราเลยจะมาแชร์วิธีการจัดการรวมรูปภาพของผู้กรอกคนนั้น มาสร้างเป็นFolderใหม่(แบบอัตโนมัติ)กันนะครับ

// Presented by BrilliantPy ✓ V.1.1.1
/*######################### Editable1 Start #########################*/
let formId = "1rgdzKP6IAGH2cTReAgnlezE9X-Wsd5_XD1TP0_BrilliantPy";
let sheetName = 'การตอบแบบฟอร์ม 1';
let targetFolderId = "18RE87jZ-SxPT85mTbpPT9ppBrilliantPy";
let col_name = 2;
let col_img1 = 3;
let col_img2 = 4;
let col_status = 5;
let col_img_arr = [col_img1,col_img2];
/*#########################  Editable1 End  #########################*/
// Init
let ss,sheet,lastRow,lastCol,range,values,title;
let col_id = 0;
let newFolder;
let parentFolder;
let status = "SENT";
let col_status_index = col_status+1;
let formCount;

function mngData() {
  initSpreadSheet();
  let form = FormApp.openById(formId);
  formCount = form.getResponses().length;
  sheet.getRange(lastRow,1).setValue(formCount);
  SpreadsheetApp.flush();

  for (let i=1;i<lastRow;i++) {
    let cur_row = i+1;
    let cur_data = values[i];
    let cur_status = cur_data[col_status] || "";
    if (cur_status == status) {
      continue;
    }
    let data_id = formCount || "";
    let data_name = cur_data[col_name] || "";
    data_name = data_name.trim().replace(/ /g, '_');
    let folderName = `${data_name}_${data_id}`;
    try{
      parentFolder = DriveApp.getFolderById(targetFolderId);
      let folderId = parentFolder.getFoldersByName(folderName).next().getId();
      newFolder = DriveApp.getFolderById(folderId);
      console.log("new folder",newFolder)
    }
    catch(e) {
      createNewFolder(folderName);
    }

    let img_id_arr = [];
    col_img_arr.forEach(function(el) {
      let cur_img = cur_data[el];
      try{
        let cur_img_id = getIdFromUrl(cur_img)[0];
        if (cur_img_id) {
          img_id_arr.push(cur_img_id);
        }
      }catch(e){
        console.log("Get image error:",e);
      }
    });
    console.log("img_id_arr",img_id_arr)
    for (let i=0;i<img_id_arr.length;i++) {
      moveFileById(img_id_arr[i]);
    }
    sheet.getRange(cur_row,col_status_index).setValue(status);
  }
  console.log('mngData completed');
}
function initSpreadSheet() {
  ss = SpreadsheetApp.getActive();
  sheet = ss.getSheetByName(sheetName);
  lastRow = sheet.getLastRow();
  lastCol = sheet.getLastColumn();
  console.log(lastRow,lastCol)
  range = sheet.getDataRange();
  values = range.getValues();
  title = values[0];
  console.log('initSpreadSheet completed');
}
function createNewFolder(folderName) {
  newFolder = parentFolder.createFolder(folderName);
}
function moveFileById(sourceFileId) {
  var file = DriveApp.getFileById(sourceFileId);
  if (newFolder) {
    try {
      file.moveTo(newFolder);
      // file.makeCopy(file.getName(), newFolder);
    } catch(e) {
      console.log("moveFileById error:",e);
    }
  }
}
function getIdFromUrl(url) { 
  return url.match(/[-\w]{25,}/); 
}

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *