สมัครสมาชิก VIP เพียง 1,900 บาท/ปี ดาวน์โหลดสินค้าดิจิทัลฟรีทุกรายการที่มีสัญลักษณ์ VIP ดูรายละเอียด
naiyachonponthong@gmail.com | 0965073584
Real-Programmers

Google Apps Script บทที่ 2: จัดการข้อมูลใน Sheets (อ่านและเขียนข้อมูลอัตโนมัติ)

Google Apps Script บทที่ 2: จัดการข้อมูลใน Sheets (อ่านและเขียนข้อมูลอัตโนมัติ)

Google Apps Script บทที่ 2: จัดการข้อมูลใน Sheets (อ่านและเขียนข้อมูลอัตโนมัติ)

หลังจากใน บทที่ 1 เราได้ทำความรู้จักหน้าตาของห้องเครื่อง และลองสั่งให้หุ่นยนต์ทักทายเราด้วยคำสั่ง Toast ไปแล้ว ในบทนี้เราจะขยับเข้าใกล้การทำงานจริงขึ้นไปอีกขั้น นั่นคือ "การสั่งให้สคริปต์อ่านค่าจาก Google Sheets และเขียนข้อมูลใหม่ลงไปในช่องที่เราต้องการ"

นี่คือพื้นฐานสำคัญที่สุด เพราะไม่ว่าคุณจะอยากทำระบบตัดสต็อกอัตโนมัติ, ระบบคำนวณเกรด, หรือระบบดึงข้อมูลไปส่งอีเมล ทุกอย่างล้วนเริ่มต้นจากพลังในการ "อ่าน" และ "เขียน" ข้อมูลทั้งสิ้นครับ!


1. ทำความรู้จัก 2 คำสั่งทรงพลัง: getValue และ setValue

ก่อนจะเริ่มพิมพ์โค้ด ให้เราทำความเข้าใจหลักการทำงานของมันก่อนครับ:

  • getValue() (การอ่านข้อมูล): เปรียบเหมือนหุ่นยนต์เดินไปดูที่ช่องเซลล์ที่เราบอก แล้วจำไว้ในใจว่าในช่องนั้นมีข้อความหรือตัวเลขอะไรอยู่

  • setValue() (การเขียนข้อมูล): เปรียบเหมือนหุ่นยนต์หยิบปากกาเดินไปเขียนข้อความหรือตัวเลขใหม่ลงไปในช่องเซลล์ที่เรากำหนด


2. เตรียมหน้า Google Sheets สำหรับทดสอบ

เพื่อให้เห็นภาพชัดเจน ให้คุณเปิด Google Sheets ไฟล์เดิมจากบทที่ 1 แล้วพิมพ์ข้อมูลลงไปดังนี้ครับ:

  1. ที่ช่อง B2 ให้พิมพ์ชื่อของคุณลงไป (เช่น สมชาย)

  2. ปล่อยช่อง C2 ว่างไว้ (เราจะให้หุ่นยนต์มาเขียนคำว่า "อัปเดตแล้ว!" ในช่องนี้)


3. เริ่มเขียนสคริปต์บทที่ 2

ให้คุณไปที่เมนู ส่วนขยาย (Extensions) > Apps Script เพื่อเปิดหน้าต่างเขียนโค้ดขึ้นมา

ให้ลบโค้ดเดิมออก (หรือจะขึ้นบรรทัดใหม่ด้านล่างก็ได้) แล้ววางโค้ดชุดนี้ลงไปครับ:

JavaScript
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. วิธีรันสคริปต์และดูผลลัพธ์

  1. คลิกไอคอน แผ่นดิสก์ (Save) เพื่อบันทึกโค้ด

  2. ตรงแถบเมนูด้านบน ให้เปลี่ยนชื่อฟังก์ชันที่จะรันเป็น readAndWriteData

  3. คลิกปุ่ม เรียกใช้ (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 ให้เขียนในช่องผลลัพธ์ว่า "ไม่ผ่าน" อัตโนมัติทันที! แล้วพบกันในบทต่อไปครับ!

ความคิดเห็น
ทักผ่าน LINE Messenger ส่งอีเมล โทรหาเรา
ติดต่อ