Google Apps Script บทที่ 2: จัดการข้อมูลใน Sheets (อ่านและเขียนข้อมูลอัตโนมัติ)
หลังจากใน บทที่ 1 เราได้ทำความรู้จักหน้าตาของห้องเครื่อง และลองสั่งให้หุ่นยนต์ทักทายเราด้วยคำสั่ง Toast ไปแล้ว ในบทนี้เราจะขยับเข้าใกล้การทำงานจริงขึ้นไปอีกขั้น นั่นคือ "การสั่งให้สคริปต์อ่านค่าจาก Google Sheets และเขียนข้อมูลใหม่ลงไปในช่องที่เราต้องการ"
นี่คือพื้นฐานสำคัญที่สุด เพราะไม่ว่าคุณจะอยากทำระบบตัดสต็อกอัตโนมัติ, ระบบคำนวณเกรด, หรือระบบดึงข้อมูลไปส่งอีเมล ทุกอย่างล้วนเริ่มต้นจากพลังในการ "อ่าน" และ "เขียน" ข้อมูลทั้งสิ้นครับ!
1. ทำความรู้จัก 2 คำสั่งทรงพลัง: getValue และ setValue
ก่อนจะเริ่มพิมพ์โค้ด ให้เราทำความเข้าใจหลักการทำงานของมันก่อนครับ:
getValue()(การอ่านข้อมูล): เปรียบเหมือนหุ่นยนต์เดินไปดูที่ช่องเซลล์ที่เราบอก แล้วจำไว้ในใจว่าในช่องนั้นมีข้อความหรือตัวเลขอะไรอยู่setValue()(การเขียนข้อมูล): เปรียบเหมือนหุ่นยนต์หยิบปากกาเดินไปเขียนข้อความหรือตัวเลขใหม่ลงไปในช่องเซลล์ที่เรากำหนด
2. เตรียมหน้า Google Sheets สำหรับทดสอบ
เพื่อให้เห็นภาพชัดเจน ให้คุณเปิด Google Sheets ไฟล์เดิมจากบทที่ 1 แล้วพิมพ์ข้อมูลลงไปดังนี้ครับ:
ที่ช่อง B2 ให้พิมพ์ชื่อของคุณลงไป (เช่น
สมชาย)ปล่อยช่อง C2 ว่างไว้ (เราจะให้หุ่นยนต์มาเขียนคำว่า "อัปเดตแล้ว!" ในช่องนี้)
3. เริ่มเขียนสคริปต์บทที่ 2
ให้คุณไปที่เมนู ส่วนขยาย (Extensions) > Apps Script เพื่อเปิดหน้าต่างเขียนโค้ดขึ้นมา
ให้ลบโค้ดเดิมออก (หรือจะขึ้นบรรทัดใหม่ด้านล่างก็ได้) แล้ววางโค้ดชุดนี้ลงไปครับ:
function readAndWriteData() {
// 1. เชื่อมต่อกับ Spreadsheet และแผ่นงาน (Sheet) ปัจจุบันที่กำลังเปิดอยู่
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// 2. [การอ่านข้อมูล] ดึงค่าจากช่อง B2 มาเก็บไว้ในตัวแปรที่ชื่อ cellValue
var cellValue = sheet.getRange("B2").getValue();
// 3. แสดงค่านั้นออกมาดูในระบบ Logger (บันทึก) เพื่อตรวจสอบความถูกต้อง
Logger.log("ข้อมูลในช่อง B2 คือ: " + cellValue);
// 4. [การเขียนข้อมูล] สั่งให้เขียนคำว่า "อัปเดตแล้ว!" ลงไปในช่อง C2
sheet.getRange("C2").setValue("อัปเดตแล้ว!");
}
4. วิธีรันสคริปต์และดูผลลัพธ์
คลิกไอคอน แผ่นดิสก์ (Save) เพื่อบันทึกโค้ด
ตรงแถบเมนูด้านบน ให้เปลี่ยนชื่อฟังก์ชันที่จะรันเป็น
readAndWriteDataคลิกปุ่ม เรียกใช้ (Run) > โน้ตสำคัญสำหรับมือใหม่: หากมีหน้าต่างเด้งขึ้นมาถามเรื่อง "การตรวจสอบสิทธิ์ (Authorization Required)" เนื่องจากนี่เป็นครั้งแรกที่สคริปต์จะเข้าไปยุ่งกับข้อมูลในชีต ให้คุณคลิก Review Permissions > เลือกบัญชี Google ของคุณ > คลิก Advanced (ขั้นสูง) > คลิก Go to Untitled project (ไม่ปลอดภัย) > แล้วกด Allow (อนุญาต) ครับ (ทำแค่ครั้งแรกครั้งเดียวเท่านั้น)
สิ่งที่จะเกิดขึ้นหลังกด Run:
ผลลัพธ์บน Google Sheets: เมื่อคุณกลับไปดูที่หน้าชีต คุณจะพบว่าที่ช่อง C2 มีคำว่า "อัปเดตแล้ว!" โผล่ขึ้นมาเองโดยอัตโนมัติ!
ผลลัพธ์ในหน้า Apps Script: หากคุณดูที่แถบ "บันทึกการทำงาน (Execution Log)" ด้านล่างของหน้าจอเขียนโค้ด คุณจะเห็นข้อความพิมพ์ว่า
ข้อมูลในช่อง B2 คือ: สมชาย(หรือชื่อที่คุณพิมพ์ไว้) ซึ่งพิสูจน์ว่าหุ่นยนต์มันเข้าไปอ่านข้อมูลมาได้จริงๆ!
สรุปสิ่งที่คุณได้เรียนรู้ในบทที่ 2
ในบทนี้คุณได้เรียนรู้วิธีกำหนดเป้าหมายของเซลล์ด้วยคำสั่ง getRange() และใช้คำสั่งยอดฮิตอย่าง getValue() ในการดึงข้อมูลออกมา รวมถึง setValue() ในการส่งข้อมูลกลับเข้าไปในแผ่นงาน
ใน บทที่ 3 เราจะเริ่มยกระดับความสามารถของหุ่นยนต์ตัวนี้ขึ้นไปอีก โดยการให้มันรู้จัก "คิดและตัดสินใจเอง" ด้วยคำสั่งเงื่อนไข (If-Else) เช่น ถ้าสคริปต์อ่านเจอคะแนนต่ำกว่า 50 ให้เขียนในช่องผลลัพธ์ว่า "ไม่ผ่าน" อัตโนมัติทันที! แล้วพบกันในบทต่อไปครับ!