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