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

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

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

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

ในทั้ง 2 กรณี คุณสามารถโต้ตอบกับเอกสารใน 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 Script เอกสารใน Google เอกสารจะมีโครงสร้างคล้ายกับเอกสาร HTML กล่าวคือ Google เอกสารประกอบด้วยองค์ประกอบต่างๆ (เช่น Paragraph หรือ Table) ที่มักจะมีองค์ประกอบอื่นๆ สคริปต์ส่วนใหญ่ที่แก้ไขเอกสารใน Google เอกสารจะเริ่มต้นด้วยการเรียกไปยัง getBody() เนื่องจาก Body เป็นองค์ประกอบหลักที่มีองค์ประกอบอื่นๆ ทั้งหมด ยกเว้น HeaderSection, FooterSection และ Footnotes

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

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

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

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

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

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

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

ทริกเกอร์

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

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