การขยาย Google เอกสาร

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

ข้อมูลเบื้องต้น

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

ไม่ว่าจะเป็นกรณีใด คุณก็โต้ตอบกับเอกสารใน Google เอกสารผ่านบริการเอกสารของ Apps Script ได้ง่ายๆ ดังตัวอย่างต่อไปนี้

function createDoc() {
  var doc = DocumentApp.create('Sample Document');
  var documentTab = doc.getTab('t.0').asDocumentTab();
  var body = documentTab.getBody();
  var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']];
  body.insertParagraph(0, doc.getName())
      .setHeading(DocumentApp.ParagraphHeading.HEADING1);
  table = body.appendTable(rowsData);
  table.getRow(0).editAsText().setBold(true);
}

สคริปต์ด้านบนจะสร้างเอกสารใหม่ใน Google ไดรฟ์ของผู้ใช้ จากนั้น จะดึงแท็บที่มีรหัส t.0 (แท็บแรกเริ่มต้น) แทรกย่อหน้า ที่มีข้อความเดียวกันกับชื่อเอกสาร จัดรูปแบบย่อหน้านั้นเป็น ส่วนหัว และผนวกตารางตามค่าในอาร์เรย์ 2 มิติ สคริปต์สามารถทำการเปลี่ยนแปลงเหล่านี้กับเอกสารที่มีอยู่ได้อย่างง่ายดายโดย แทนที่การเรียกใช้ DocumentApp.create() ด้วย DocumentApp.openById() หรือ openByUrl() สำหรับสคริปต์ที่สร้างขึ้นภายในเอกสาร (ผูกกับคอนเทนเนอร์) ให้ใช้ DocumentApp.getActiveDocument() และ Document.getActiveTab()

โครงสร้างของเอกสาร

ในมุมมองของ Apps Script เอกสาร Google เอกสารมีโครงสร้าง คล้ายกับเอกสาร HTML มาก นั่นคือ เอกสารประกอบด้วยออบเจ็กต์ Tab อย่างน้อย 1 รายการ ซึ่งแต่ละรายการมี องค์ประกอบ (เช่น Paragraph หรือ Table) ซึ่งมักจะมีองค์ประกอบอื่นๆ อยู่ด้วย สคริปต์ส่วนใหญ่ที่แก้ไขเอกสาร Google เอกสารจะเริ่มต้นด้วยการเรียกใช้ getTab() และ asDocumentTab() ตามด้วย getBody() เนื่องจาก Body เป็นองค์ประกอบหลัก ที่มีองค์ประกอบอื่นๆ ทั้งหมดในแท็บ ยกเว้น HeaderSection FooterSection และFootnotes

อย่างไรก็ตาม มีกฎเกี่ยวกับประเภทขององค์ประกอบที่สามารถมีองค์ประกอบประเภทอื่นๆ นอกจากนี้ บริการเอกสารใน Apps Script ยังแทรกได้เฉพาะ องค์ประกอบบางประเภทลงในองค์ประกอบอื่นๆ เท่านั้น แผนผังด้านล่างแสดง องค์ประกอบที่องค์ประกอบบางประเภทสามารถมีได้

คุณสามารถแทรกองค์ประกอบที่แสดงเป็นตัวหนาได้ ส่วนองค์ประกอบที่ไม่เป็นตัวหนาจะ แก้ไขได้ในตำแหน่งเท่านั้น

การแทนที่ข้อความ

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

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

โปรดทราบว่าฟังก์ชันทั้ง 2 นี้ใช้วิธีการ getActiveDocument() และ getActiveTab() ซึ่งใช้ได้กับสคริปต์ที่สร้างขึ้นภายในเอกสาร Google เอกสารเท่านั้น ในสคริปต์แบบสแตนด์อโลน ให้ใช้ DocumentApp.create() openById() หรือ openByUrl() ร่วมกับ Document.getTab() แทน

เพิ่มตัวยึดตำแหน่ง

function createPlaceholders() {
  var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();
  body.appendParagraph('{name}');
  body.appendParagraph('{address}');
  body.appendParagraph('{city} {state} {zip}');
}

แทนที่ตัวยึดตำแหน่ง

function searchAndReplace() {
  var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();
  var client = {
    name: 'Joe Script-Guru',
    address: '100 Script Rd',
    city: 'Scriptville',
    state: 'GA',
    zip: 94043
  };

  body.replaceText('{name}', client.name);
  body.replaceText('{address}', client.address);
  body.replaceText('{city}', client.city);
  body.replaceText('{state}', client.state);
  body.replaceText('{zip}', client.zip);
}

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

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

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

ส่วนเสริมสำหรับ Google เอกสาร

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

ดูวิธีสร้างส่วนเสริมสำหรับ Google เอกสารได้ที่การเริ่มต้นอย่างรวดเร็วสำหรับการสร้างส่วนเสริมของเอกสาร

ทริกเกอร์

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

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