Google Apps Script memungkinkan Anda membuat dan memodifikasi Google Dokumen secara terprogram, serta menyesuaikan antarmuka pengguna dengan menu, kotak dialog, dan sidebar.
Dasar-dasar
Apps Script dapat berinteraksi dengan Google Dokumen melalui dua cara: skrip apa pun dapat membuat atau memodifikasi dokumen jika pengguna skrip memiliki izin yang sesuai untuk dokumen, dan skrip juga bisa terikat dengan dokumen, sehingga memberi kemampuan khusus skrip untuk mengubah antarmuka pengguna atau merespons ketika dokumen dibuka. Untuk membuat skrip yang terikat pada penampung dari dalam Google Dokumen, klik Ekstensi > Apps Script..
Dalam kedua kasus tersebut, berinteraksi dengan dokumen Google Dokumen menjadi mudah melalui Apps Script Document Service, sebagai contoh berikut tunjukkan.
function createDoc() { var doc = DocumentApp.create('Sample Document'); var documentTab = doc.getTab('t.0').asDocumentTab(); var body = documentTab.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, lalu
mengambil tab dengan ID t.0
(tab pertama default), menyisipkan paragraf
yang berisi teks yang sama dengan nama dokumen, menata gaya paragraf itu sebagai
{i>heading<i}, dan menambahkan tabel berdasarkan nilai dalam {i>array<i} dua dimensi. Tujuan
{i>script<i} 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 container), gunakan
DocumentApp.getActiveDocument()
dan Document.getActiveTab()
.
Struktur dokumen
Dari perspektif Apps Script, dokumen Google Dokumen terstruktur
mirip seperti dokumen HTML—yaitu, dokumen terdiri dari satu atau lebih
Objek Tab
, yang masing-masing berisi
elemen (seperti Paragraph
atau
Table
) yang sering berisi elemen
yang kurang penting. Sebagian besar skrip yang mengubah dokumen Google Dokumen dimulai dengan panggilan ke
getTab()
dan
asDocumentTab()
diikuti oleh getBody()
,
karena Body
adalah elemen inti
yang berisi semua elemen lain di tab kecuali untuk
HeaderSection
,
FooterSection
, dan setiap
Footnotes
.
Namun, ada aturan tentang jenis elemen mana yang bisa berisi jenis lain. Selain itu, Layanan Dokumen di Apps Script hanya dapat menyisipkan jenis elemen tertentu ke dalam elemen lainnya. Hierarki di bawah ini menunjukkan elemen dapat ditampung oleh jenis elemen tertentu.
Elemen yang ditampilkan dalam huruf tebal dapat disisipkan; elemen yang tidak tebal hanya bisa dimanipulasi.
- Dokumen
- Tab
- DocumentTab
- Isi
- HeaderSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- Teks
- UnsupportedElement (nomor halaman, dll.)
- Paragraf
- HorizontalRule
- InlineDrawing
- InlineImage
- Teks
- UnsupportedElement (nomor halaman, dll.)
- Tabel
- ListItem
- FooterSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- Teks
- UnsupportedElement (nomor halaman, dll.)
- Paragraf
- HorizontalRule
- InlineDrawing
- InlineImage
- Teks
- UnsupportedElement (nomor halaman, dll.)
- Tabel
- ListItem
- FootnoteSection
- DocumentTab
- Tab
Mengganti teks
Apps Script sering digunakan untuk menggantikan teks di Google Dokumen. Katakanlah Anda memiliki {i>spreadsheet<i} yang penuh dengan informasi klien dan Anda ingin membuat Google Dokumen untuk setiap klien. (Jenis operasi ini sering disebut email merge.)
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
cenderung mengetik {i>placeholder<i} di dalam dokumen. Tujuan
fungsi kedua menggantikan {i>placeholder
<i}dengan properti yang ditentukan di
Objek client
.
Perhatikan bahwa kedua fungsi ini menggunakan
getActiveDocument()
dan
getActiveTab()
metode yang hanya berlaku untuk skrip yang dibuat di dalam dokumen Google Dokumen;
dalam skrip yang berdiri sendiri, gunakan
DocumentApp.create()
,
openById()
,
atau openByUrl()
,
dikombinasikan dengan Document.getTab()
,
sebagai gantinya.
Menambahkan beberapa placeholder
function createPlaceholders() { var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody(); body.appendParagraph('{name}'); body.appendParagraph('{address}'); body.appendParagraph('{city} {state} {zip}'); }
Mengganti placeholder
function searchAndReplace() { var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().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 khusus 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 {i>instance<i} dari dokumen yang terbuka saat ini, dan hanya jika {i>script<i} itu terikat dengan dokumen.
Lihat cara menambahkan menu khusus dan dialog ke Google Dokumen Anda. Untuk mempelajari lebih lanjut cara membuat antarmuka kustom untuk dialog atau sidebar, baca dokumentasi panduan untuk Layanan HTML. Jika Anda berencana untuk menerbitkan antarmuka khusus sebagai bagian dari add-on, ikuti panduan gaya untuk konsistensi dengan gaya dan tata letak editor Google Dokumen.
Add-on untuk Google Dokumen
Add-on berjalan di dalam Google Dokumen dan dapat diinstal dari toko add-on Google Dokumen. Jika Anda mengembangkan skrip untuk Google Docs dan ingin membagikannya dengan dunia, Apps Script memungkinkan Anda memublikasikan skrip Anda sebagai add-on ini sehingga pengguna lain dapat menginstalnya dari toko add-on tersebut.
Untuk melihat cara membuat add-on untuk Google Dokumen, lihat panduan memulai untuk membuat add-on Dokumen.
Pemicu
Skrip yang terikat dengan
Dokumen dapat menggunakan pemicu sederhana untuk merespons
ke peristiwa onOpen
dokumen, yang
terjadi setiap kali pengguna yang memiliki akses edit ke dokumen membukanya di Google Dokumen.
Untuk menyiapkan pemicu, cukup tulis fungsi bernama onOpen()
. Untuk contoh
tentang pemicu ini, lihat Menu kustom di Google Workspace.
Meskipun pemicu sederhana berguna untuk menambahkan menu, pemicu ini tidak dapat menggunakan Aplikasi apa pun
Layanan skrip yang membutuhkan otorisasi.