Blog

วิธีการใช้ Google Sheets เป็นฐานข้อมูล

วิธีการใช้ Google Sheets เป็นฐานข้อมูล

วิธีการใช้ Google Sheets เป็นฐานข้อมูล

1. ใน Google Drive คลิก New > More > Connect more apps 

            วิธีการใช้ Google Sheets เป็นฐานข้อมูล

2. ในชื่อ search ใส่คำว่า script แล้วกด Enter จะพบ Google Apps Script แล้วกดปุ่ม Connect

           วิธีการใช้ Google Sheets เป็นฐานข้อมูล

3. จากนั้น ใน Google Drive ให้คลิกที่ New > More > Google Apps Script

           วิธีการใช้ Google Sheets เป็นฐานข้อมูล

4. จากนั้นให้คลิก Close ได้เลย
           วิธีการใช้ Google Sheets เป็นฐานข้อมูล

5. จะได้พื้นที่โปรเจค (Project) ในการพัฒนา Google Apps Script โดยในแต่ละโปรเจคจะประกอบไปด้วยหลายๆไฟล์ Google Apps Script ได้ 

           วิธีการใช้ Google Sheets เป็นฐานข้อมูล

ในการพัฒนา Google Apps Script นั้น จะต้องเขียนในรูปแบบของฟังก์ชั่น (Function) เพื่อให้สะดวกในการใช้งานต่างๆ

ตัวอย่างเช่น มี Google Sheets อยู่ใน Google Drive ดังภาพ

            วิธีการใช้ Google Sheets เป็นฐานข้อมูล

มีรายละเอียดดังนี้

  1. ชื่อของ SpreadSheet คือ “ฐานข้อมูลของฉัน”
  2. ประกอบไปด้วย Sheet ชื่อ “Sheet1” และ “Log”
  3. มี URL คือ

    https://docs.google.com/a/psu.ac.th/spreadsheets/d/1HJmyqiBYC_AEATmdUWakLgHFyYGqSqeqSA8xEw-8o-c/edit

ต่อไปเป็นขั้นตอนการเขียน Google Apps Script เพื่อติดต่อกับ Google Sheet ข้างต้น เพื่อเขียนข้อมูลลงไป โดยตั้งชื่อโปรเจคนี้ว่า ProjectMyDB ตั้งชื่อไฟล์ว่า SheetDB.gs และตั้งชื่อฟังก์ชั่น “editSheet” ดังภาพ

วิธีการใช้ Google Sheets เป็นฐานข้อมูล

ขั้นตอนการทำงานของฟังก์ชั่น editSheet

  1. สร้างตัวแปร ss รับค่าจากการเปิด SpreadSheet จาก URL ข้างต้นด้วยคำสั่ง
    var ss = SpreadsheetApp.openByUrl('https://docs.google.com/a/psu.ac.th/spreadsheets/d/1HJmyqiBYC_AEATmdUWakLgHFyYGqSqeqSA8xEw-8o-c/edit');
  1. สั่งให้ SpreadSheet ดังกล่าว Active ด้วยคำสั่ง   SpreadsheetApp.setActiveSpreadsheet(ss);
  1. เนื่องจากในแต่ละ SpreadSheet ประกอบด้วยหลาย Sheet จึงต้องระบุว่า จะทำงานกับ Active Sheet ชื่อ “Sheet1” ด้วยคำสั่ง  SpreadsheetApp.setActiveSheet(ss.getSheetByName("Sheet1"));
  2. สร้างตัวแปร activeSheet เพื่อกำหนดว่ากำลังทำงาน Active Sheet ด้วยคำสั่ง  var activeSheet=ss.getActiveSheet();
  1. เมื่อต้องการเขียนค่า “Hello World” ลงใน Active Sheet ที่ Cell “C3” ใช้คำสั่ง  activeSheet.getRange("C3").setValue("Hello World");
  1. หากต้องการเขียนค่าทีละหลายๆ Cell หรือเป็น Range ต้องสร้างข้อมูลชนิด Array 2 มิติขึ้นมา แล้วจึงเขียนค่าลงไป กรณีต้องการใส่ค่าในช่วง “A1:C1” ใช้คำสั่ง
    var values =[  ["คณกรณ์","หอศิริธรรม","'3720024"]  ];
    activeSheet.getRange("A1:C1").setValues(values);
  1. หากต้องการเขียนค่าในช่วง “A2:A4” ใช้คำสั่ง
    values = [ ["เกรียงไกร"],["หนูทองคำ"],["'4220020"] ];
    activeSheet.getRange("A2:A4").setValues(values);
  1. เมื่อจะเก็บข้อมูลจริงๆ วิธีการข้างต้นจะไม่สะดวก เพราะจะต้องทราบว่าแถวสุดท้ายแล้วเพิ่มค่าแถวไปทีละหนึ่ง ซึ่งสามารถใช้วิธีการ Append Row กล่าวคือเขียนค่าลงไปในแถวถัดจากแถวล่าสุดที่มีข้อมูลได้ ในตัวอย่างนี้ จะสลับไปใช้ Sheet ชื่อ “Log” แล้วใส่ค่าลงไปด้วยคำสั่ง
    SpreadsheetApp.setActiveSheet(ss.getSheetByName("Log"));
    activeSheet=ss.getActiveSheet();
    var timestamp = new Date();
    activeSheet.appendRow([timestamp, 200 , 300]);
    timestamp = new Date();
    activeSheet.appendRow([timestamp, 200 , 456]);

จากนั้น Save ข้อมูล แล้วสั่ง Run โดยเลือกฟังก์ชั่นชื่อ editSheet ดังภาพ

วิธีการใช้ Google Sheets เป็นฐานข้อมูล

ในการใช้งานครั้งแรก จะปรากฏหน้าต่าง Consent ขึ้นมาเพื่อขอสิทธิ์ในการเข้าใช้ไฟล์

ผลที่ได้จากการทำงานคือ

วิธีการใช้ Google Sheets เป็นฐานข้อมูล

และ

วิธีการใช้ Google Sheets เป็นฐานข้อมูล

จะเห็นได้ว่าสามารถใช้ Google Apps Script เพื่อเขียนค่าใน Google Sheets เพื่อเป็นฐานข้อมูลได้ และสามารถประยุกต์ใช้งานอื่นๆได้อีกมากมาย

Credit :sysadmin

Comments

Line
Line
021163100