การขยาย Google ชีต

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

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

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

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

Apps Script มี API พิเศษที่ช่วยให้คุณสร้าง อ่าน และแก้ไข Google ชีตได้แบบเป็นโปรแกรม Apps Script โต้ตอบกับ 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 ชีตเรียกใช้ฟังก์ชันโดยอัตโนมัติเมื่อเกิดเหตุการณ์บางอย่างขึ้น อย่างไรก็ตาม ทริกเกอร์ที่ติดตั้งได้จะมีความยืดหยุ่นมากกว่าทริกเกอร์ที่ไม่ซับซ้อนและรองรับเหตุการณ์ต่อไปนี้ การเปิด แก้ไข เปลี่ยนแปลง การส่งแบบฟอร์ม และตามเวลา (นาฬิกา)