การแปลงข้อมูลจาก Google Sheets เป็น JSON โดยใช้หัวตารางเป็นคีย์สามารถทำได้โดยการใช้ Google Apps Script ซึ่งเป็นเครื่องมือที่ช่วยให้เราสามารถเขียนสคริปต์เพื่อจัดการกับเอกสาร Google ได้อย่างง่ายดาย
function sheetToJson() {
  // เข้าถึงชีตที่ต้องการ (ชีตแรกในกรณีนี้)
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
  // ดึงข้อมูลทั้งหมดจากชีต
  const data = sheet.getDataRange().getValues();
  // ใช้แถวแรกเป็นหัวตาราง (คีย์ของ JSON)
  const headers = data[0];
  // เตรียม JSON ที่จะเก็บข้อมูล
  const jsonArray = [];
  // วนลูปผ่านข้อมูลแต่ละแถว เริ่มตั้งแต่แถวที่ 2 (เนื่องจากแถวแรกเป็นหัวตาราง)
  for (let i = 1; i < data.length; i++) {
    const rowData = {};
    for (let j = 0; j < headers.length; j++) {
      rowData[headers[j]] = data[i][j];
    }
    jsonArray.push(rowData);
  }
  // แปลงข้อมูลเป็น JSON
  const jsonOutput = JSON.stringify(jsonArray, null, 2);
  // แสดงผล JSON ใน Logger
  Logger.log(jsonOutput);
  // หรือคุณสามารถส่งออก JSON นี้ไปยังไฟล์ (เช่น Google Drive)
  // const file = DriveApp.createFile('sheet_data.json', jsonOutput, MimeType.JSON);
}
อธิบายโค้ด:
- เข้าถึงชีตที่ต้องการ: 
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];- เข้าถึงชีตแรกในสเปรดชีตปัจจุบัน - ดึงข้อมูลทั้งหมด: 
const data = sheet.getDataRange().getValues();- ดึงข้อมูลทั้งหมดในรูปแบบของอาร์เรย์สองมิติ - ใช้แถวแรกเป็นหัวตาราง: 
const headers = data[0];- เก็บหัวตาราง (แถวแรก) ไว้ในตัวแปรheaders - เตรียม JSON Array: 
const jsonArray = [];- เตรียมอาร์เรย์ที่จะเก็บข้อมูลในรูปแบบ JSON - วนลูปผ่านข้อมูลแต่ละแถว: ใช้ลูป 
forเพื่อวนผ่านข้อมูลตั้งแต่แถวที่ 2 เป็นต้นไป และสร้างออบเจ็กต์ JSON สำหรับแต่ละแถว - แปลงเป็น JSON: 
const jsonOutput = JSON.stringify(jsonArray, null, 2);- แปลงอาร์เรย์ของข้อมูลเป็น JSON - แสดงผล JSON: 
Logger.log(jsonOutput);- แสดง JSON ใน Logger (สามารถดูผลได้ที่ View > Logs) 
การใช้งานเพิ่มเติม
หากคุณต้องการบันทึกไฟล์ JSON ลงใน Google Drive หรือใช้งานข้อมูล JSON ในวิธีอื่น ๆ คุณสามารถปรับปรุงสคริปต์เพิ่มเติมได้ตามความต้องการของคุณ
ขอให้สนุกในการพัฒนาของคุณ! 😊