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 เอกสารใน Google เอกสารมีโครงสร้างคล้ายกับเอกสาร HTML กล่าวคือ เอกสารใน Google เอกสารจะประกอบด้วยองค์ประกอบต่างๆ (เช่น Paragraph
หรือ Table
) ที่มักมีองค์ประกอบอื่นๆ สคริปต์ส่วนใหญ่ที่แก้ไขเอกสารใน Google เอกสารจะเริ่มต้นด้วยการเรียก
getBody()
เนื่องจาก
Body
เป็นองค์ประกอบหลักที่มี
องค์ประกอบอื่นๆ ทั้งหมดยกเว้น
HeaderSection
,
FooterSection
และ
Footnotes
อย่างไรก็ตาม มีกฎเกี่ยวกับประเภทขององค์ประกอบที่สามารถมีประเภทอื่นๆ ได้ นอกจากนี้ บริการเอกสารใน Apps Script ยังแทรกองค์ประกอบได้เฉพาะบางประเภทเท่านั้น แผนผังด้านล่างแสดงองค์ประกอบที่อยู่ในองค์ประกอบบางประเภทได้
คุณแทรกองค์ประกอบที่แสดงเป็นตัวหนาได้ แต่จะจัดการได้เฉพาะองค์ประกอบที่ไม่ใช่ตัวหนาเท่านั้น
- เอกสาร
- เนื้อความ
- ส่วนหัว
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- ข้อความ
- UnsupportedElement (เลขหน้า ฯลฯ)
- ย่อหน้า
- HorizontalRule
- InlineDrawing
- InlineImage
- ข้อความ
- UnsupportedElement (เลขหน้า ฯลฯ)
- ตาราง
- ListItem
- ส่วนท้าย
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- ข้อความ
- UnsupportedElement (เลขหน้า ฯลฯ)
- ย่อหน้า
- HorizontalRule
- InlineDrawing
- InlineImage
- ข้อความ
- UnsupportedElement (เลขหน้า ฯลฯ)
- ตาราง
- ListItem
- ส่วนเชิงอรรถ
การแทนที่ข้อความ
สคริปต์ Apps มักใช้เพื่อแทนที่ข้อความใน 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 Service หากกำลังวางแผนที่จะเผยแพร่อินเทอร์เฟซที่กำหนดเองโดยเป็นส่วนหนึ่งของส่วนเสริม โปรดทำตามคู่มือสไตล์เพื่อให้สอดคล้องกับรูปแบบและเลย์เอาต์ของเครื่องมือแก้ไข Google เอกสาร
ส่วนเสริมสำหรับ Google เอกสาร
ส่วนเสริมจะทำงานภายใน Google เอกสารและติดตั้งได้จากสโตร์ส่วนเสริมของ Google เอกสาร หากคุณได้พัฒนาสคริปต์สำหรับ Google เอกสารไว้และต้องการแชร์กับผู้คนทั่วโลก Apps Script จะช่วยให้คุณpublishสคริปต์เป็นส่วนเสริมเพื่อให้ผู้ใช้รายอื่นติดตั้งได้จากสโตร์ส่วนเสริมได้
โปรดดูวิธีสร้างส่วนเสริมสำหรับ Google เอกสารได้ที่การเริ่มต้นอย่างรวดเร็วในการสร้างส่วนเสริมของเอกสาร
ทริกเกอร์
สคริปต์ที่เชื่อมโยงอยู่กับเอกสารใน Google เอกสารจะใช้ทริกเกอร์ง่ายๆ เพื่อตอบสนองต่อonOpen
เหตุการณ์ของเอกสาร จะเกิดขึ้นเมื่อผู้ใช้ที่มีสิทธิ์แก้ไขเอกสารเปิดเอกสารนี้ใน Google เอกสาร
หากต้องการตั้งค่าทริกเกอร์ เพียงเขียนฟังก์ชันชื่อ onOpen()
ดูตัวอย่างทริกเกอร์นี้ได้ที่เมนูที่กำหนดเองใน Google Workspace
แม้ว่าทริกเกอร์แบบง่ายจะมีประโยชน์ในการเพิ่มเมนู แต่ก็ไม่สามารถใช้บริการ Apps Script ที่ต้องมีการให้สิทธิ์ได้