เป็นสคริปต์สำหรับ Google Apps Script ที่ใช้ในการค้นหาไฟล์ใน Google Drive จากชื่อโฟลเดอร์และชื่อไฟล์ที่ระบุใน Google Sheets แล้วบันทึก URL ของไฟล์นั้นลงในคอลัมน์ C ของแถวเดียวกัน โค้ดนี้ทำงานภายใต้การทำงานของฟังก์ชัน doPost
, ซึ่งถูกเรียกเมื่อมีการส่งข้อมูลมายัง Apps Script ผ่าน HTTP POST request. นี่คือรายละเอียดของแต่ละส่วนของโค้ด:
function doPost(e) {
var postdata = JSON.parse(e.postData.contents);
var row = postdata.row;
var sheet = SpreadsheetApp.getActive().getSheetByName("ชื่อชีต");
var arrpath = sheet.getRange('คอลัมภ์ชื่อไฟล์'+row).getDisplayValue().split("/");
var foldername = arrpath[0];
var filename = arrpath[1];
var fileid = DriveApp.getFoldersByName(foldername).next().getFilesByName(filename).next().getId();
var fileurl = "https://drive.google.com/uc?export=view&id=" + fileid;
sheet.getRange('คอลัมภ์ลิงค์'+row).setValue(fileurl);
}
คำอธิบาย
var postdata = JSON.parse(e.postData.contents);
- แปลงข้อมูลที่ได้รับจาก request เป็น JSON object.var row = postdata.row;
- อ่านค่าของแถวที่ต้องการอัพเดทจากข้อมูลที่ได้รับ.var sheet = SpreadsheetApp.getActive().getSheetByName("ชีต1");
- เข้าถึงแผ่นงานที่ชื่อว่า "ชีต1" ภายในสเปรดชีตที่ script กำลังทำงานอยู่.var arrpath = sheet.getRange('B'+row).getDisplayValue().split("/");
- อ่านค่าจากคอลัมน์ B ของแถวที่ระบุและแยกสตริงด้วยเครื่องหมาย "/" เพื่อแยกชื่อโฟลเดอร์และชื่อไฟล์.var foldername = arrpath[0];
- กำหนดชื่อโฟลเดอร์จากส่วนแรกของ array.var filename = arrpath[1];
- กำหนดชื่อไฟล์จากส่วนที่สองของ array.var fileid = DriveApp.getFoldersByName(foldername).next().getFilesByName(filename).next().getId();
- ค้นหาไฟล์ด้วยชื่อโฟลเดอร์และชื่อไฟล์ที่ระบุ, และเก็บ ID ของไฟล์นั้น.var fileurl = "https://drive.google.com/uc?export=view&id=" + fileid;
- สร้าง URL สำหรับการเข้าถึงไฟล์โดยตรงจาก Google Drive โดยใช้ ID ของไฟล์.