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

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

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

สคริปต์ Apps สามารถโต้ตอบกับ 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 สามารถแทรกองค์ประกอบได้บางประเภทเท่านั้น โครงสร้างด้านล่างจะแสดงว่าองค์ประกอบใดบ้างที่สามารถ อยู่ในองค์ประกอบบางประเภทได้

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

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

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

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

ทริกเกอร์

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

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