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

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

ทริกเกอร์

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

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