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

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

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

สคริปต์ของ Apps สามารถโต้ตอบกับ Google เอกสารได้ 2 แบบด้วยกัน คือ สคริปต์แบบใดก็ได้ สร้างหรือแก้ไขเอกสารหากผู้ใช้ของสคริปต์มีสิทธิ์ที่เหมาะสม เอกสาร และสคริปต์ยังสามารถ bound กับเอกสาร ซึ่งจะให้ สคริปต์ความสามารถพิเศษในการปรับเปลี่ยนอินเทอร์เฟซผู้ใช้หรือตอบสนองเมื่อ เอกสารเปิดอยู่ วิธีสร้างสคริปต์ที่ผูกกับคอนเทนเนอร์จากภายใน 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 ออบเจ็กต์ แต่ละรายการประกอบด้วย (เช่น Paragraph หรือ Table) ที่มักประกอบด้วย จากองค์ประกอบเหล่านี้ สคริปต์ส่วนใหญ่ที่แก้ไขเอกสาร Google เอกสารจะเริ่มต้นด้วยการเรียกไปยัง getTab() และ asDocumentTab() ตามด้วย getBody() เพราะ Body คือองค์ประกอบหลัก ที่มีองค์ประกอบอื่นๆ ทั้งหมดในแท็บ ยกเว้น HeaderSection, FooterSection และอื่นๆ Footnotes

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

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

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

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

การแทนที่ข้อความทำได้หลายวิธี แต่วิธีที่ง่ายที่สุดคือ replaceText() ที่แสดงในตัวอย่างด้านล่าง replaceText รองรับผู้ใช้ส่วนใหญ่ ของคุณลักษณะนิพจน์ทั่วไปของ JavaScript ฟังก์ชันแรกด้านล่าง เพิ่มข้อความตัวยึดตำแหน่งหลายบรรทัดใน Google เอกสาร ในโลกแห่งความเป็นจริง คุณ มีโอกาสมากกว่าที่จะพิมพ์ตัวยึดตำแหน่งในเอกสารด้วยตนเอง ฟังก์ชันที่สองจะแทนที่ตัวยึดตำแหน่งด้วยคุณสมบัติที่กำหนดไว้ในฟังก์ชัน ออบเจ็กต์ 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 เฉพาะสำหรับ อินสแตนซ์ปัจจุบันของเอกสารที่เปิดอยู่ และเฉพาะเมื่อสคริปต์ bound กับเอกสาร

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

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

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

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

ทริกเกอร์

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

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