การขยาย Google ชีต

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

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

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

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

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

บริการสเปรดชีตจะถือว่า Google ชีตเป็นตารางกริดที่ทำงานร่วมกับอาร์เรย์ 2 มิติ หากต้องการดึงข้อมูล จากสเปรดชีต คุณต้องมีสิทธิ์เข้าถึงสเปรดชีตที่จัดเก็บข้อมูล รับช่วงในสเปรดชีตที่มีข้อมูล แล้วรับค่าของเซลล์ Apps Script ช่วยให้เข้าถึงข้อมูลได้โดยการอ่าน Structured Data ในสเปรดชีตและสร้างออบเจ็กต์ 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 ชีตผ่านบริการ Forms และ Spreadsheet ได้ ฟีเจอร์นี้ สามารถสร้าง 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 จะช่วยให้คุณเผยแพร่สคริปต์เป็นส่วนเสริม เพื่อให้ผู้ใช้รายอื่นติดตั้งจากร้านค้าส่วนเสริมได้

ทริกเกอร์

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

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