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

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

ข้อมูลพื้นฐาน

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

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

function createDoc() {
  var doc = DocumentApp.create('Sample Document');
  var body = doc.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 ไดรฟ์ของผู้ใช้ จากนั้นแทรกย่อหน้าที่มีข้อความเดียวกับชื่อเอกสาร รูปแบบที่ย่อหน้าเป็นส่วนหัว และผนวกตารางตามค่าในอาร์เรย์ 2 มิติ สคริปต์นี้จะทำการเปลี่ยนแปลงเหล่านี้ในเอกสารที่มีอยู่ได้ง่ายๆ โดยแทนที่การเรียกไปยัง DocumentApp.create() ด้วย DocumentApp.openById() หรือ openByUrl() สำหรับสคริปต์ที่สร้างภายในเอกสาร (เชื่อมโยงกับคอนเทนเนอร์) ให้ใช้ DocumentApp.getActiveDocument()

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

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

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

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

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

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

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

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

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

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

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

function searchAndReplace() {
  var body = DocumentApp.getActiveDocument()
      .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 Service หากกำลังวางแผนที่จะเผยแพร่อินเทอร์เฟซที่กำหนดเองโดยเป็นส่วนหนึ่งของส่วนเสริม โปรดทำตามคู่มือสไตล์เพื่อให้สอดคล้องกับรูปแบบและเลย์เอาต์ของเครื่องมือแก้ไข Google เอกสาร

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

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

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

ทริกเกอร์

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

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