การขยาย 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 ชีต

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

ทริกเกอร์

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

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