Dengan Google Apps Script, Anda dapat membuat dan mengubah Google Dokumen secara terprogram, serta menyesuaikan antarmuka pengguna dengan menu, kotak dialog, dan sidebar baru.
Dasar-dasar
Apps Script dapat berinteraksi dengan Google Dokumen dalam dua cara umum: skrip apa pun dapat membuat atau mengubah dokumen jika pengguna skrip memiliki izin yang sesuai untuk dokumen, dan skrip juga dapat terikat dengan dokumen, sehingga skrip memiliki kemampuan khusus untuk mengubah antarmuka pengguna atau merespons saat dokumen dibuka. Untuk membuat skrip terikat penampung dari dalam Google Dokumen, klik Ekstensi > Apps Script.
Dalam kedua kasus tersebut, Anda dapat berinteraksi dengan Dokumen Google melalui Layanan Dokumen Apps Script dengan mudah, seperti yang ditunjukkan dalam contoh berikut.
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); }
Skrip di atas membuat dokumen baru di Google Drive pengguna, kemudian menyisipkan paragraf yang berisi teks yang sama dengan nama dokumen, memberi gaya pada paragraf tersebut sebagai judul, dan menambahkan tabel berdasarkan nilai dalam array dua dimensi. Skrip dapat dengan mudah membuat perubahan ini pada dokumen yang ada dengan mengganti panggilan ke DocumentApp.create()
dengan DocumentApp.openById()
atau openByUrl()
.
Untuk skrip yang dibuat di dalam dokumen (terikat dengan container), gunakan DocumentApp.getActiveDocument()
.
Struktur dokumen
Dari perspektif Apps Script, Dokumen Google disusun seperti dokumen HTML—yaitu, Dokumen Google terdiri dari elemen (seperti Paragraph
atau Table
) yang sering berisi elemen lain. Sebagian besar skrip yang mengubah Dokumen Google dimulai dengan panggilan ke
getBody()
, karena
Body
adalah elemen master yang
berisi semua elemen lain kecuali untuk
HeaderSection
,
FooterSection
, dan
Footnotes
apa pun.
Namun, ada aturan tentang jenis elemen yang dapat berisi jenis lain. Selain itu, Layanan Dokumen dalam Apps Script hanya dapat menyisipkan jenis elemen tertentu. Hierarki di bawah menunjukkan elemen mana yang dapat ditampung oleh jenis elemen tertentu.
Elemen yang ditampilkan dalam huruf tebal dapat disisipkan; elemen non-tebal hanya dapat dimanipulasi di tempat.
- Dokumen
- Isi
- HeaderSection
- ListItem
- HorizontalRule
- Gambar Inline
- InlineGambar
- Teks
- SupportedElement (nomor halaman, dll.)
- Paragraf
- HorizontalRule
- Gambar Inline
- InlineGambar
- Teks
- SupportedElement (nomor halaman, dll.)
- Tabel
- ListItem
- FooterSection
- ListItem
- HorizontalRule
- Gambar Inline
- InlineGambar
- Teks
- SupportedElement (nomor halaman, dll.)
- Paragraf
- HorizontalRule
- Gambar Inline
- InlineGambar
- Teks
- SupportedElement (nomor halaman, dll.)
- Tabel
- ListItem
- FootnoteSection
Mengganti teks
Apps Script sering digunakan untuk mengganti teks di Google Dokumen. Misalnya Anda memiliki spreadsheet yang penuh dengan informasi klien dan Anda ingin membuat Dokumen Google yang dipersonalisasi untuk setiap klien. (Jenis operasi ini sering disebut penggabungan email.)
Ada banyak cara untuk mengganti teks, tetapi yang paling sederhana adalah
metode replaceText()
yang ditampilkan dalam contoh di bawah. replaceText
mendukung sebagian besar
fitur ekspresi reguler JavaScript. Fungsi pertama di bawah ini menambahkan beberapa baris teks placeholder ke Google Dokumen. Di dunia nyata, Anda kemungkinan besar akan mengetik placeholder ke dalam dokumen sendiri. Fungsi
kedua menggantikan placeholder dengan properti yang ditentukan dalam
objek client
.
Perhatikan bahwa kedua fungsi ini menggunakan metode getActiveDocument()
, yang hanya berlaku untuk skrip yang dibuat di dalam Google Dokumen. Dalam skrip mandiri, gunakan DocumentApp.create()
, openById()
, atau openByUrl()
.
Menambahkan beberapa placeholder
function createPlaceholders() { var body = DocumentApp.getActiveDocument().getBody(); body.appendParagraph('{name}'); body.appendParagraph('{address}'); body.appendParagraph('{city} {state} {zip}'); }
Mengganti placeholder
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); }
Menu kustom dan antarmuka pengguna
Anda dapat menyesuaikan Google Dokumen dengan menambahkan menu, kotak dialog, dan sidebar. Namun, perlu diingat bahwa skrip hanya dapat berinteraksi dengan UI untuk instance dokumen terbuka saat ini, dan hanya jika skrip terikat ke dokumen.
Lihat cara menambahkan menu kustom dan dialog ke Google Dokumen. Untuk mempelajari lebih lanjut cara membuat antarmuka kustom untuk dialog atau sidebar, lihat panduan untuk Layanan HTML. Jika Anda berencana memublikasikan antarmuka kustom sebagai bagian dari add-on, ikuti panduan gaya agar konsisten dengan gaya dan tata letak editor Google Dokumen.
Add-on untuk Google Dokumen
Add-on berjalan di dalam Google Dokumen dan dapat diinstal dari add-on Google Dokumen. Jika Anda telah mengembangkan skrip untuk Google Dokumen dan ingin membagikannya kepada dunia, Apps Script memungkinkan Anda memublikasikan skrip sebagai add-on sehingga pengguna lain dapat menginstalnya dari add-on store.
Guna melihat cara membuat add-on untuk Google Dokumen, lihat panduan memulai untuk membuat add-on Dokumen.
Triggers
Skrip yang terikat dengan Google Dokumen dapat menggunakan pemicu sederhana untuk merespons onOpen
peristiwa dokumen, yang terjadi setiap kali pengguna yang memiliki akses edit ke dokumen membukanya di Google Dokumen.
Untuk menyiapkan pemicu, cukup tulis fungsi yang disebut onOpen()
. Kode menu
di atas menunjukkan contoh pemicu ini. Meskipun pemicu sederhana berguna untuk menambahkan menu, pemicu tidak dapat menggunakan layanan Apps Script yang memerlukan otorisasi.