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 สามารถแทรกองค์ประกอบได้บางประเภทเท่านั้น โครงสร้างด้านล่างแสดงองค์ประกอบที่อยู่ในองค์ประกอบบางประเภทได้
องค์ประกอบที่แสดงเป็นตัวหนาจะแทรกได้ โดยองค์ประกอบที่ไม่ใช่ตัวหนาจะจัดการได้เท่านั้น
- เอกสาร
- เนื้อหา
- ListItem
- ย่อหน้า
- ตาราง
- ตาราง
- ตารางเซลล์
- ย่อหน้า...
- รายการสิ่งของ...
- ตาราง...
- ตารางเซลล์
- ตาราง
- สารบัญ
- HeaderSection
- ListItem
- กฎเกี่ยวกับแนวนอน
- ภาพวาดในบรรทัด
- รูปภาพในหน้า
- ข้อความ
- SupportedElement (หมายเลขหน้า ฯลฯ)
- ย่อหน้า
- กฎเกี่ยวกับแนวนอน
- ภาพวาดในบรรทัด
- รูปภาพในหน้า
- ข้อความ
- SupportedElement (หมายเลขหน้า ฯลฯ)
- ตาราง
- ตาราง
- ตารางเซลล์
- ย่อหน้า...
- รายการสิ่งของ...
- ตาราง...
- ตารางเซลล์
- ตาราง
- ListItem
- ส่วนส่วนท้าย
- ListItem
- กฎเกี่ยวกับแนวนอน
- ภาพวาดในบรรทัด
- รูปภาพในหน้า
- ข้อความ
- SupportedElement (หมายเลขหน้า ฯลฯ)
- ย่อหน้า
- กฎเกี่ยวกับแนวนอน
- ภาพวาดในบรรทัด
- รูปภาพในหน้า
- ข้อความ
- SupportedElement (หมายเลขหน้า ฯลฯ)
- ตาราง
- ตาราง
- ตารางเซลล์
- ย่อหน้า...
- รายการสิ่งของ...
- ตาราง...
- ตารางเซลล์
- ตาราง
- ListItem
- FootnoteSection
- เนื้อหา
การแทนที่ข้อความ
Apps Script มักใช้เพื่อแทนที่ข้อความใน Google เอกสาร สมมติว่าคุณมีสเปรดชีตที่เต็มไปด้วยข้อมูลของลูกค้า และต้องการสร้าง Google เอกสารที่ปรับเปลี่ยนในแบบของคุณสําหรับลูกค้าแต่ละราย (การดําเนินการลักษณะนี้มักจะเรียกว่าการรวมอีเมล)
คุณแทนที่ข้อความได้หลายวิธี แต่วิธีที่ง่ายที่สุดคือเมธอด replaceText()
ที่แสดงในตัวอย่างด้านล่าง replaceText
รองรับฟีเจอร์นิพจน์ทั่วไปของ JavaScript' ได้เป็นส่วนใหญ่ ฟังก์ชันแรกด้านล่างนี้เป็นการเพิ่มข้อความตัวยึดตําแหน่งหลายบรรทัดลงใน 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 ที่ต้องมีการให้สิทธิ์ไม่ได้