Microsoft Excel และ Google Sheet คือ Spreadsheet ที่พัฒนาได้เป็น Application อย่างไร ? (174)
 

Microsoft Excel และ Google Sheet คือ Spreadsheet ที่พัฒนาได้เป็น Application อย่างไร ?


เรียบเรียงโดย กฤติเดช ฉายจรุง | ปรับปรุงล่าสุด วันที่: 2022-12-27 19:09:27

ICON รายละเอียด : รายละเอียด

Read and write spreadsheet data. Create charts and build pivot tables.

 

คู่มือ App 

เนื่องด้วยการจัดเก็บข้อมูลในลักษณะของ Spreadsheet ทำได้ง่าย หน่วยงานต่าง ๆ จึงมีการนำใช้ในการจัดเก็บและประมวลผลข้อมูล โดยโปรแกรมที่นิยมนำมาใช้งาน เช่น Microsoft Excel และ Google Sheet สำหรับบทความนี้จะโฟกัสไปที่ Google Sheet นะครับ เมื่อเรามีข้อมูลมากขึ้นและต้องการเผยแพร่ออกไป วิธีที่ง่ายที่สุดที่เราสามารถทำได้คือ การแชร์ไฟล์ หรือ การเผยแพร่ไปยังเว็บไซต์ เพื่อให้ผู้อื่นสามารถเข้าถึงข้อมูลเหล่านี้ได้ แต่สองวิธีข้างตนอาจไม่สะดวกนักหากเป็นการแบ่งปันข้อมูลระหว่างระบบด้วยกันเอง โดยมากการแบ่งปันข้อมูลระหว่างระบบนิยมใช้หลักการแบบ API ที่ส่งมอบข้อมูลในรูปแบบของ JSON มากกว่า

Google Sheet มี API หรือ ชุดคำสั่งที่ทำให้นักพัฒนาสามารถเข้าถึงเอกสาร Google Sheet ได้ ผ่านการเขียนโปรแกรมด้วยภาษาต่าง ๆ เช่น JavaScript, .NET, Google Apps Script และ อื่น ๆ

ขั้นตอน

เตรียมไฟล์ Google Sheet สำหรับเป็นแหล่งข้อมูล

เขียน Google Apps Script (GAS) เพื่อให้บริการข้อมูล

การ Publish GAS Project และ ทดสอบร้องขอข้อมูล

การเตรียม Google Sheet

การเตรียมไฟล์ Google Sheet มีข้อเสนอแนะเบื้องต้น ดังนี้

โครงสร้างของข้อมูล
– WorkSheet => Table คือ Sheet ข้อมูลเปรียบเหมือนตารางข้อมูล 1 ชุด
– Columns => Attributes of Records คือ คอลัมภ์ เป็นรายละเอียดที่ต้องจัดเก็บในตาราง เช่น รหัส ชื่อ สกุล หมายเลขโทรศัพท์ และ อื่นๆ
– Rows => Data คือ ข้อมูลจริง ๆ ที่สอดคล้องกับข้อมูลในชื่อ Column โดยกำหนดให้แถวแรก เป็นส่วนหัวของตาราง

กำหนดให้ข้อมูลมี Column ที่ทำหน้าที่เป็น Key ซึ่งเป็นค่าที่ไม่ซ้ำสำหรับใช้ในการเข้าถึง และ การสร้างความสัมพันธ์ เช่น รหัส เป็นต้น เขียน Google Apps Script (GAS) เพื่อให้บริการข้อมูล

เปิดโปรแกรมแก้ไขสคริปต์ สามารถเรียกผ่าน https://script.google.com/home หรือ ที่ Google Sheet เลือกเมนู เครื่องมือ > โปรแกรมแก้ไขสคริปต์ ตั้งชื่อโครงสร้างให้เรียบร้อย

ที่ไฟล์แรกเริ่ม code.gs หรือ รหัส.gs ให้ลบโค้ดเริ่มต้นออกทั้งหมด และ วางโค้ดส่วนนี้ลงไป

 

function config() {
  var sheetID = "รหัสของ Google Sheet"; //ดู Note [1] ด้านล่าง
  var links = [];
  links["ชื่อข้อมูล1"] = "ชื่อ Sheet1";   //ตัวอย่าง links["students"] = "Student";
  links["ชื่อข้อมูล2"] = "ชื่อ Sheet2";
  return { sheetID: sheetID, links: links };
}
function doGet(e) {
 var configs = config();
 var params = e.parameter;
 var query = params.q != undefined ? params.q : "";
 var sheetName = configs.links[query];
  var dt = [];
  if (sheetName != null) {
    dt = readWorkSheet(configs.sheetID, sheetName);
  }
  const jResponse = JSON.stringify(toObject(dt));
 return ContentService.createTextOutput(jResponse).setMimeType(
   ContentService.MimeType.JSON  );
}
function readWorkSheet(sheetID, sheetName) {
 var ss = SpreadsheetApp.openById(sheetID);
 var ws = ss.getSheetByName(sheetName);
 var datatable = ws
   .getRange(1, 1, ws.getLastRow(), ws.getLastColumn())
   .getValues();
  return datatable;
}
function toObject(dt) {
 //กำหนดให้แถวแรกเป็น header
 const header = [];
  const objs = [];
  if (dt != null && dt.length > 0) {
   for (var i = 0; i < dt[0].length; i++) {
     header.push(dt[0][i]);
    }
    for (var i = 1; i < dt.length; i++) {
     var row = dt[i];
     var newObj = {};
     for (var j = 0; j < row.length; j++) {
       newObj[header[j]] = row[j];
     }
     objs.push(newObj);
   }
  }
  return objs;
}

คำอธิบายโค้ดโปรแกรม

function config()
– ใช้สำหรับตั้งค่าการทำงาน โดยให้คัดลอก รหัสของ Google Sheet ที่เป็นแหล่งข้อมูลมาแทนที่ใน ” ” ดู Note [1] ด้านล่าง
– ในส่วนของ links “ชื่อของข้อมูล” ที่อยู่ภายใน links[ ] จะถูกใช้อ้างถึงในการเรียกใช้งาน คือ https://google-apps-script-url/exec?q=ชื่อของข้อมูล
– “ชื่อ Sheet” ให้ระบุชื่อของ Worksheet
– links[“ชื่อข้อมูล1”] = “ชื่อ Sheet1” อธิบายคือ เมื่อมีการสอบถามข้อมูล q=ชื่อข้อมูล1 จะใช้ข้อมูลจาก sheet ที่ชื่อ “ชื่อ Sheet1”

function doGet(e)
– เป็น function หลักเมื่อผู้ใช้งาน ร้องขอข้อมูล (HTTP_GET)
– รับค่า query string ที่ชื่อว่า q จาก request มาพักไว้ที่ตัวแปร query
– เอาค่า q หรือ query ไปหาความสัมพันธ์กับชื่อ Sheet
– ทำการอ่านข้อมูลในชีตที่กำหนดผ่านฟังก์ชั่น readWorkSheet(sheetID, sheetName) ได้ผลลัพธ์เป็น DataTable
– นำ DataTable ไปแปลงเป็น Array of Object ด้วยฟังก์ชั่น toObject(dt)
– ส่งออกข้อมูลด้วยการแปลง Array of Object เป็นข้อมูลแบบ JSON

function readWorksheet(sheetID, sheetName)
– ภายในฟังก์ชั่นนี้จะมีการเรียกใช้ Google Sheet API เพื่อเข้าถึง Spreadsheet และ Sheet
– ใช้คำสั่ง getRange ในการดึงข้อมูลในขอบเขตที่กำหนดคือ ตั้งแต่ แถวแรก คอลัมภ์แรก ถึง แถวและคอมลัมภ์สุดท้าย
– getValues เป็นการดึงค่าในขอบเขต (Range) โดยยังให้ความสำคัญกับประเภทของข้อมูลในแต่ละ cell ด้วย ทั้งนี้สามารถเปลี่ยนเป็น getDisplayValues หากต้องการให้ข้อมูลทั้งหมดเป็นเพียงข้อความ

function toObject(dt)
– รับข้อมูลที่เป็นรูปแบบของตาราง มาแปลงเป็น object

การ Publish GAS Project

– การ Publish ทำได้ด้วยการคลิกที่ ปุ่ม การทำให้ใช้งานได้ > การทำให้ใช้งานได้รายการใหม่ และ กำหนดสิทธิ์ในการเข้าถึงบริการนี้

Next - Content

สรุป - บทความนี้เป็นการนำเสนอแนวทางในการนำ Google Sheet มาประยุกต์ใช้ในการจัดเก็บข้อมูล และให้บริการข้อมูลในลักษณะของ API อย่างง่าย เพื่อให้นักพัฒนาสามารถมาเชื่อมโยงข้อมูลเหล่านี้ได้

 

 

แหล่งข้อมูล

https://km.phuket.psu.ac.th/archives/6294

http://www.thaifreewaredownload.com/2020/11/blog-post.html

 

Reference

https://developers.google.com/sheets/api

https://developers.google.com/apps-script/reference/spreadsheet/sheet

 

ข้อมูลที่เกี่ยวข้อง เพื่อต่อยอดและพัฒนา

Thailand Data Protection Guidelines 3.2
แนวปฏิบัติเกี่ยวกับการคุ้มครองข้อมูลส่วนบุคคล สำหรับการวิจัยและสถิติ

  ลิงค์ที่เกี่ยวกับ Microsoft Excel และ Google Sheet คือ Spreadsheet ที่พัฒนาได้เป็น Application อย่างไร ?

รายละเอียดเพิ่มเติม

Query 0 results

Microsoft Excel และ Google Sheet คือ Spreadsheet ที่พัฒนาได้เป็น Application อย่างไร ?

เนื่องด้วยการจัดเก็บข้อมูลในลักษณะของ Spreadsheet ทำได้ง่าย หลายคนรู้จักและนิยมใช้งาน เช่น Microsoft Excel และ Google Sheet (API - JSON - JavaScript, .NET, Google Apps Script )


TOP