การขยาย Google ชีต

Google Apps Script ช่วยให้คุณทำสิ่งใหม่ๆ ที่ยอดเยี่ยมได้ด้วย Google ชีต คุณสามารถใช้ Apps Script เพื่อเพิ่มเมนูที่กำหนดเอง กล่องโต้ตอบ และแถบด้านข้างไปยัง Google ชีต นอกจากนี้ยังช่วยให้คุณเขียนฟังก์ชันที่กำหนดเองสำหรับชีต และผสานรวมชีตกับบริการอื่นๆ ของ Google เช่น ปฏิทิน ไดรฟ์ และ Gmail ได้

สคริปต์ส่วนใหญ่ที่ออกแบบมาสำหรับ Google ชีตจะจัดการอาร์เรย์เพื่อโต้ตอบกับเซลล์ แถว และคอลัมน์ในสเปรดชีต หากคุณยังไม่คุ้นเคยกับอาร์เรย์ใน JavaScript Codecademy มีโมดูลการฝึกที่ยอดเยี่ยมสำหรับอาร์เรย์ (โปรดทราบว่าหลักสูตรนี้ไม่ได้พัฒนาขึ้นและไม่เกี่ยวข้องกับ Google)

สำหรับข้อมูลเบื้องต้นที่เข้าใจง่ายเกี่ยวกับการใช้ Apps Script กับ Google ชีต โปรดดูคู่มือเริ่มใช้งานฉบับย่อระยะเวลา 5 นาทีสำหรับมาโคร เมนู และฟังก์ชันที่กำหนดเอง

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

Apps Script มี API พิเศษที่ให้คุณสร้าง อ่าน และแก้ไข Google ชีตผ่านการเขียนโปรแกรมได้ สคริปต์ Apps สามารถโต้ตอบกับ Google ชีตได้ 2 วิธีด้วยกัน ได้แก่ สคริปต์จะสร้างหรือแก้ไขสเปรดชีตได้หากผู้ใช้ของสคริปต์มีสิทธิ์ที่เหมาะสมสำหรับสเปรดชีต นอกจากนี้ สคริปต์ยังเชื่อมโยงกับสเปรดชีตได้ด้วย ซึ่งจะทำให้สคริปต์มีความสามารถพิเศษในการแก้ไขอินเทอร์เฟซผู้ใช้หรือตอบกลับเมื่อเปิดสเปรดชีต หากต้องการสร้างสคริปต์ที่เชื่อมโยง ให้เลือกส่วนขยาย > Apps Script จากภายใน Google ชีต

บริการสเปรดชีตจะถือว่า Google ชีตเป็นตารางกริดที่ทำงานด้วยอาร์เรย์ 2 มิติ หากต้องการดึงข้อมูลจากสเปรดชีต คุณต้องมีสิทธิ์เข้าถึงสเปรดชีตที่มีข้อมูลเก็บไว้ ดูช่วงในสเปรดชีตที่เก็บข้อมูลไว้ จากนั้นจึงดูค่าของเซลล์ Apps Script อำนวยความสะดวกในการเข้าถึงข้อมูลด้วยการอ่าน ข้อมูลที่มีโครงสร้างในสเปรดชีตและสร้างออบเจ็กต์ JavaScript สำหรับข้อมูล

กำลังอ่านข้อมูล

สมมติว่าคุณมีรายการชื่อผลิตภัณฑ์และหมายเลขผลิตภัณฑ์ที่คุณเก็บไว้ในสเปรดชีตดังที่แสดงในรูปภาพด้านล่าง

ตัวอย่างด้านล่างแสดงวิธีดึงข้อมูลและบันทึกชื่อผลิตภัณฑ์และหมายเลขผลิตภัณฑ์

function logProductInfo() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++) {
    Logger.log('Product name: ' + data[i][0]);
    Logger.log('Product number: ' + data[i][1]);
  }
}

ดูบันทึก

หากต้องการดูข้อมูลที่บันทึก ให้คลิกบันทึกการดำเนินการที่ด้านบนของเครื่องมือแก้ไขสคริปต์

ข้อมูลการเขียน

หากต้องการจัดเก็บข้อมูล เช่น ชื่อและหมายเลขผลิตภัณฑ์ใหม่ลงในสเปรดชีต ให้เพิ่มโค้ดต่อไปนี้ไว้ที่ตอนท้ายของสคริปต์

function addProduct() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}

โค้ดข้างต้นจะเพิ่มแถวใหม่ที่ด้านล่างของสเปรดชีตโดยระบุค่า หากคุณเรียกใช้ฟังก์ชันนี้ คุณจะเห็นแถวใหม่ที่เพิ่มลงในสเปรดชีต

เมนูที่กำหนดเองและอินเทอร์เฟซผู้ใช้

คุณปรับแต่ง Google ชีตได้โดยการเพิ่มเมนูที่กำหนดเอง กล่องโต้ตอบ และแถบด้านข้าง ดูข้อมูลพื้นฐานการสร้างเมนูได้ในคำแนะนำเกี่ยวกับเมนู หากต้องการเรียนรู้เกี่ยวกับการปรับแต่งเนื้อหาของกล่องโต้ตอบ โปรดดูคำแนะนำเกี่ยวกับบริการ HTML

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

หากกำลังวางแผนที่จะเผยแพร่อินเทอร์เฟซที่กำหนดเองเป็นส่วนหนึ่งของส่วนเสริม โปรดทำตามคู่มือรูปแบบเพื่อให้สอดคล้องกับรูปแบบและเลย์เอาต์ของเครื่องมือแก้ไข Google ชีต

การเชื่อมต่อกับ Google ฟอร์ม

Apps Script ช่วยให้คุณเชื่อมต่อ Google ฟอร์มกับ Google ชีตผ่านบริการฟอร์มและสเปรดชีตได้ ฟีเจอร์นี้จะสร้างแบบฟอร์มใน Google ฟอร์มโดยอัตโนมัติตามข้อมูลในสเปรดชีตได้ นอกจากนี้ Apps Script ยังช่วยให้คุณใช้ทริกเกอร์ เช่น onFormSubmit เพื่อดำเนินการบางอย่างหลังจากที่ผู้ใช้ตอบแบบฟอร์มได้ หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการเชื่อมต่อ Google ชีตกับ Google ฟอร์ม โปรดลองอ่านการจัดการคำตอบสำหรับ Google ฟอร์มอย่างรวดเร็วซึ่งใช้เวลา 5 นาที

การจัดรูปแบบ

คลาส Range มีเมธอด เช่น setBackground(color) เพื่อเข้าถึงและแก้ไขรูปแบบของเซลล์หรือช่วงของเซลล์ ตัวอย่างต่อไปนี้แสดงวิธีการตั้งค่ารูปแบบอักษรของช่วง

function formatMySpreadsheet() {
  // Set the font style of the cells in the range of B2:C2 to be italic.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange('B2:C2');
  cell.setFontStyle('italic');
}

การตรวจสอบข้อมูล

Apps Script ช่วยให้คุณเข้าถึงกฎการตรวจสอบข้อมูลใน Google ชีตที่มีอยู่หรือสร้างกฎใหม่ได้ ตัวอย่างเช่น ตัวอย่างต่อไปนี้แสดงวิธีการตั้งค่ากฎการตรวจสอบข้อมูลที่อนุญาตให้ใช้เฉพาะตัวเลขระหว่าง 1 ถึง 100 ในเซลล์

function validateMySpreadsheet() {
  // Set a rule for the cell B4 to be a number between 1 and 100.
  var cell = SpreadsheetApp.getActive().getRange('B4');
  var rule = SpreadsheetApp.newDataValidation()
     .requireNumberBetween(1, 100)
     .setAllowInvalid(false)
     .setHelpText('Number must be between 1 and 100.')
     .build();
  cell.setDataValidation(rule);
}

ดูรายละเอียดเพิ่มเติมเกี่ยวกับการใช้งานกฎการตรวจสอบข้อมูลได้ที่ SpreadsheetApp.newDataValidation(), DataValidationBuilder และ Range.setDataValidation(rule)

ชาร์ต

Apps Script ช่วยให้คุณฝังแผนภูมิในสเปรดชีตที่แสดงข้อมูลในช่วงที่ต้องการ ตัวอย่างต่อไปนี้จะสร้างแผนภูมิแท่งแบบฝัง โดยมีสมมติฐานว่าคุณมีข้อมูลในแผนภูมิในเซลล์ A1:B15

function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var chart = sheet.newChart()
     .setChartType(Charts.ChartType.BAR)
     .addRange(sheet.getRange('A1:B15'))
     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

ดูข้อมูลเพิ่มเติมเกี่ยวกับการฝังแผนภูมิในสเปรดชีตได้ที่ EmbeddedChart และเครื่องมือสร้างแผนภูมิเฉพาะ เช่น EmbeddedPieChartBuilder

ฟังก์ชันที่กำหนดเองใน Google ชีต

ฟังก์ชันที่กำหนดเองคล้ายกับฟังก์ชันสเปรดชีตในตัว เช่น =SUM(A1:A5) เว้นแต่ว่าคุณจะกำหนดลักษณะการทำงานของฟังก์ชันด้วย Apps Script ตัวอย่างเช่น คุณสามารถสร้างฟังก์ชัน in2mm() ที่กำหนดเอง ซึ่งจะแปลงค่าจากนิ้วเป็นมิลลิเมตร แล้วใช้สูตรในสเปรดชีตโดยพิมพ์ =in2mm(A1) หรือ =in2mm(10) ลงในเซลล์

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับฟังก์ชันที่กำหนดเอง ให้ลองใช้เมนูและฟังก์ชันที่กำหนดเอง การเริ่มต้นใช้งานอย่างรวดเร็ว 5 นาทีหรือดูคำแนะนำเกี่ยวกับฟังก์ชันที่กำหนดเองเชิงลึกยิ่งขึ้น

มาโคร

มาโครเป็นอีกวิธีในการเรียกใช้โค้ด Apps Script จาก UI ของ Google ชีต โดยคุณจะเปิดใช้งานด้วยแป้นพิมพ์ลัดหรือผ่านเมนู Google ชีต ซึ่งต่างจากฟังก์ชันที่กำหนดเอง ดูข้อมูลเพิ่มเติมได้ที่มาโครของ Google ชีต

ส่วนเสริมสำหรับ Google ชีต

ส่วนเสริมเป็นโปรเจ็กต์ Apps Script ที่จัดแพ็กเกจมาโดยเฉพาะซึ่งทำงานภายใน Google ชีต และติดตั้งได้จากสโตร์ของส่วนเสริมของ Google ชีต หากคุณพัฒนาสคริปต์สำหรับ Google ชีตไว้และต้องการแชร์กับผู้คนทั่วโลก Apps Script จะให้คุณpublishสคริปต์เป็นส่วนเสริมเพื่อให้ผู้ใช้รายอื่นติดตั้งจากสโตร์ของส่วนเสริมได้

ทริกเกอร์

สคริปต์ที่เชื่อมโยงกับไฟล์ Google ชีตจะใช้ทริกเกอร์ง่ายๆ เช่น ฟังก์ชัน onOpen() และ onEdit() เพื่อตอบกลับโดยอัตโนมัติเมื่อผู้ใช้ที่มีสิทธิ์แก้ไขสเปรดชีตเปิดหรือแก้ไขสเปรดชีต

ทริกเกอร์ที่ติดตั้งได้จะทำให้ Google ชีตเรียกใช้ฟังก์ชันโดยอัตโนมัติเมื่อเกิดเหตุการณ์บางอย่างขึ้น เช่นเดียวกับทริกเกอร์ทั่วไป อย่างไรก็ตาม ทริกเกอร์ที่ติดตั้งได้จะมีความยืดหยุ่นมากกว่าทริกเกอร์แบบง่าย และรองรับเหตุการณ์ต่อไปนี้ เช่น เปิด แก้ไข เปลี่ยนแปลง การส่งแบบฟอร์ม และตามเวลา (นาฬิกา)