ขยาย Google เอกสาร

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

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

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

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

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

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

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

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

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

ฟังก์ชันทั้ง 2 นี้ใช้วิธี getActiveDocument และ getActiveTab ซึ่งใช้ได้กับสคริปต์ที่สร้างขึ้นภายในเอกสารในเอกสารเท่านั้น ในสคริปต์แบบสแตนด์อโลน ให้ใช้ 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);
}

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

คุณสามารถปรับแต่งเอกสารได้โดยการเพิ่ม เมนูที่กำหนดเอง, กล่องโต้ตอบ และแถบด้านข้าง โปรดทราบว่าสคริปต์จะโต้ตอบกับ UI ของเอกสารที่ผูกไว้เท่านั้น

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

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

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

หากต้องการสร้างส่วนเสริมสำหรับเอกสาร โปรดดูการ เริ่มต้นใช้งานฉบับย่อสำหรับการสร้างส่วนเสริมของเอกสาร

ทริกเกอร์

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

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