แปลงข้อมูลจาก Google Sheets เป็น JSON โดยใช้หัวตารางเป็น Key



การแปลงข้อมูลจาก 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);
}


อธิบายโค้ด:

  1. เข้าถึงชีตที่ต้องการ: const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; - เข้าถึงชีตแรกในสเปรดชีตปัจจุบัน
  2. ดึงข้อมูลทั้งหมด: const data = sheet.getDataRange().getValues(); - ดึงข้อมูลทั้งหมดในรูปแบบของอาร์เรย์สองมิติ
  3. ใช้แถวแรกเป็นหัวตาราง: const headers = data[0]; - เก็บหัวตาราง (แถวแรก) ไว้ในตัวแปร headers
  4. เตรียม JSON Array: const jsonArray = []; - เตรียมอาร์เรย์ที่จะเก็บข้อมูลในรูปแบบ JSON
  5. วนลูปผ่านข้อมูลแต่ละแถว: ใช้ลูป for เพื่อวนผ่านข้อมูลตั้งแต่แถวที่ 2 เป็นต้นไป และสร้างออบเจ็กต์ JSON สำหรับแต่ละแถว
  6. แปลงเป็น JSON: const jsonOutput = JSON.stringify(jsonArray, null, 2); - แปลงอาร์เรย์ของข้อมูลเป็น JSON
  7. แสดงผล JSON: Logger.log(jsonOutput); - แสดง JSON ใน Logger (สามารถดูผลได้ที่ View > Logs)


การใช้งานเพิ่มเติม

หากคุณต้องการบันทึกไฟล์ JSON ลงใน Google Drive หรือใช้งานข้อมูล JSON ในวิธีอื่น ๆ คุณสามารถปรับปรุงสคริปต์เพิ่มเติมได้ตามความต้องการของคุณ


ขอให้สนุกในการพัฒนาของคุณ! 😊

แสดงความคิดเห็น (0)
ใหม่กว่า เก่ากว่า