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

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

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

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

ไม่ว่าจะเป็นกรณีใด ก็จะโต้ตอบกับ Google เอกสารผ่าน Apps Script ได้ง่าย 33;;บริการเอกสารดังตัวอย่างต่อไปนี้

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&#39 ได้เป็นส่วนใหญ่ ฟังก์ชันแรกด้านล่างนี้เป็นการเพิ่มข้อความตัวยึดตําแหน่งหลายบรรทัดลงใน Google เอกสาร แต่ในความเป็นจริง คุณจะมีแนวโน้มที่จะพิมพ์ตัวยึดตําแหน่งลงในเอกสารเองมากกว่า ฟังก์ชันที่ 2 จะแทนที่ตัวยึดตําแหน่งด้วยพร็อพเพอร์ตี้ที่กําหนดไว้ในออบเจ็กต์ client

โปรดทราบว่าฟังก์ชันทั้งสองนี้ใช้วิธีการ 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() โค้ดเมนูด้านบนแสดงตัวอย่างของทริกเกอร์นี้ แม้ว่าทริกเกอร์แบบง่ายจะมีประโยชน์สําหรับการเพิ่มเมนู แต่จะใช้บริการ Apps Script ที่ต้องมีการให้สิทธิ์ไม่ได้