เคยไหมที่เมื่อสร้าง 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,}/); }