Google Apps Script ช่วยให้คุณสามารถสร้างและแก้ไข Google เอกสารโดยใช้โปรแกรม รวมทั้งปรับแต่งอินเทอร์เฟซผู้ใช้ด้วยเมนู กล่องโต้ตอบ และ แถบด้านข้าง
ข้อมูลพื้นฐาน
สคริปต์ของ Apps สามารถโต้ตอบกับ Google เอกสารได้ 2 แบบด้วยกัน คือ สคริปต์แบบใดก็ได้ สร้างหรือแก้ไขเอกสารหากผู้ใช้ของสคริปต์มีสิทธิ์ที่เหมาะสม เอกสาร และสคริปต์ยังสามารถ bound กับเอกสาร ซึ่งจะให้ สคริปต์ความสามารถพิเศษในการปรับเปลี่ยนอินเทอร์เฟซผู้ใช้หรือตอบสนองเมื่อ เอกสารเปิดอยู่ วิธีสร้างสคริปต์ที่ผูกกับคอนเทนเนอร์จากภายใน Google เอกสาร คลิกส่วนขยาย > Apps Script
ไม่ว่าในกรณีใด คุณสามารถทำงานกับ Google เอกสารได้อย่างง่ายดายผ่านทาง บริการเอกสาร ดังตัวอย่างต่อไปนี้ ที่แสดงให้เห็น
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 ยังแทรกได้บางประเภทเท่านั้น จากหลายองค์ประกอบ โครงสร้างด้านล่างแสดงให้เห็นว่า องค์ประกอบใดสามารถอยู่ใน ประเภทขององค์ประกอบ
สามารถแทรกองค์ประกอบที่แสดงเป็นตัวหนาได้ องค์ประกอบที่ไม่ใช่ตัวหนาสามารถใส่ ถูกดัดแปลง
- เอกสาร
- เนื้อความ
- HeaderSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- ข้อความ
- UnsupportedElement (เลขหน้า ฯลฯ)
- ย่อหน้า
- HorizontalRule
- InlineDrawing
- InlineImage
- ข้อความ
- UnsupportedElement (เลขหน้า ฯลฯ)
- ตาราง
- ListItem
- FooterSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- ข้อความ
- UnsupportedElement (เลขหน้า ฯลฯ)
- ย่อหน้า
- HorizontalRule
- InlineDrawing
- InlineImage
- ข้อความ
- UnsupportedElement (เลขหน้า ฯลฯ)
- ตาราง
- ListItem
- FootnoteSection
การแทนที่ข้อความ
Apps Script มักจะใช้เพื่อแทนที่ข้อความใน Google เอกสาร สมมติว่าคุณมี ที่เต็มไปด้วยข้อมูลลูกค้า และคุณต้องการสร้าง Google เอกสารสำหรับลูกค้าแต่ละราย (การดำเนินการประเภทนี้มักเรียกว่า อีเมล merge.)
การแทนที่ข้อความทำได้หลายวิธี แต่วิธีที่ง่ายที่สุดคือ
replaceText()
ที่แสดงในตัวอย่างด้านล่าง replaceText
รองรับผู้ใช้ส่วนใหญ่
ของคุณลักษณะนิพจน์ทั่วไปของ JavaScript ฟังก์ชันแรกด้านล่าง
เพิ่มข้อความตัวยึดตำแหน่งหลายบรรทัดใน Google เอกสาร ในโลกแห่งความเป็นจริง คุณ
มีโอกาสมากกว่าที่จะพิมพ์ตัวยึดตำแหน่งในเอกสารด้วยตนเอง
ฟังก์ชันที่สองจะแทนที่ตัวยึดตำแหน่งด้วยคุณสมบัติที่กำหนดไว้ในฟังก์ชัน
ออบเจ็กต์ 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 เฉพาะสำหรับ อินสแตนซ์ปัจจุบันของเอกสารที่เปิดอยู่ และเฉพาะเมื่อสคริปต์ bound กับเอกสาร
ดูวิธีเพิ่มเมนูที่กำหนดเอง และ กล่องโต้ตอบ Google เอกสารของคุณ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการสร้างอินเทอร์เฟซที่กำหนดเองสำหรับกล่องโต้ตอบหรือแถบด้านข้าง โปรดดู คำแนะนำเกี่ยวกับบริการ HTML หากคุณกำลังวางแผนที่จะเผยแพร่อินเทอร์เฟซที่กำหนดเองเป็นส่วนหนึ่งของ add-on ให้ทำตาม คู่มือแนะนำเพื่อให้สอดคล้องกับ ของเครื่องมือแก้ไข Google เอกสาร
ส่วนเสริมสำหรับ Google เอกสาร
ส่วนเสริมจะทำงานภายใน Google เอกสารและสามารถติดตั้งได้ จากสโตร์ของส่วนเสริม Google เอกสาร หากคุณได้พัฒนาสคริปต์สำหรับ Google เอกสาร และต้องการแชร์กับคนทั้งโลก Apps Script จะช่วยให้คุณ เผยแพร่สคริปต์ของคุณเป็น ส่วนเสริมเพื่อให้ผู้ใช้รายอื่นสามารถติดตั้งจากสโตร์ของส่วนเสริมได้
หากต้องการดูวิธีสร้างส่วนเสริมสำหรับ Google เอกสาร โปรดดู การเริ่มต้นอย่างรวดเร็วในการสร้างส่วนเสริมของเอกสาร
ทริกเกอร์
สคริปต์ที่เชื่อมโยงกับ
เอกสารใช้ทริกเกอร์แบบง่ายเพื่อตอบกลับได้
กับ onOpen
เหตุการณ์ ของเอกสาร ซึ่ง
จะเกิดขึ้นเมื่อผู้ใช้ที่มีสิทธิ์แก้ไขเอกสารเปิดเอกสารใน Google เอกสาร
หากต้องการตั้งค่าทริกเกอร์ เพียงเขียนฟังก์ชันที่ชื่อว่า onOpen()
ตัวอย่างเช่น
ของทริกเกอร์นี้ ให้ดูที่เมนูที่กำหนดเองใน Google Workspace
แม้ว่าทริกเกอร์แบบง่ายจะมีประโยชน์สำหรับการเพิ่มเมนู แต่ก็ไม่สามารถใช้ Apps
บริการสคริปต์ที่ต้องมีการให้สิทธิ์