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 สามารถแทรกองค์ประกอบได้บางประเภทเท่านั้น โครงสร้างด้านล่างจะแสดงว่าองค์ประกอบใดบ้างที่สามารถ อยู่ในองค์ประกอบบางประเภทได้
องค์ประกอบที่แสดงเป็นตัวหนาสามารถแทรกได้ องค์ประกอบที่ไม่ใช่ตัวหนาจะสามารถจัดการได้เท่านั้น
- เอกสาร
- เนื้อหา
- ส่วนหัว
- ListItem
- กฎแนวนอน
- ภาพวาดแบบอินไลน์
- รูปภาพในบรรทัด
- ข้อความ
- ไม่รองรับองค์ประกอบ (หมายเลขหน้า ฯลฯ)
- ย่อหน้า
- กฎแนวนอน
- ภาพวาดแบบอินไลน์
- รูปภาพในบรรทัด
- ข้อความ
- ไม่รองรับองค์ประกอบ (หมายเลขหน้า ฯลฯ)
- ตาราง
- ListItem
- ส่วนส่วนท้าย
- ListItem
- กฎแนวนอน
- ภาพวาดแบบอินไลน์
- รูปภาพในบรรทัด
- ข้อความ
- ไม่รองรับองค์ประกอบ (หมายเลขหน้า ฯลฯ)
- ย่อหน้า
- กฎแนวนอน
- ภาพวาดแบบอินไลน์
- รูปภาพในบรรทัด
- ข้อความ
- ไม่รองรับองค์ประกอบ (หมายเลขหน้า ฯลฯ)
- ตาราง
- ListItem
- FootnoteSection
แทนที่ข้อความ
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 ที่ต้องมีการให้สิทธิ์