Memperluas Google Dokumen

Google Apps Script memungkinkan Anda 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 melalui dua cara umum: skrip apa pun dapat membuat atau mengubah dokumen jika pengguna skrip memiliki izin yang sesuai untuk dokumen, dan skrip juga dapat diikat ke dokumen, yang memberi skrip kemampuan khusus untuk mengubah antarmuka pengguna atau merespons saat dokumen dibuka. Untuk membuat skrip yang terikat penampung dari dalam Google Dokumen, klik Ekstensi > Apps Script.

Dalam kedua kasus tersebut, mudah untuk berinteraksi dengan Dokumen Google melalui Document Service Apps Script, 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, lalu menyisipkan paragraf yang berisi teks yang sama dengan nama dokumen, menata gaya 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 penampung), gunakan DocumentApp.getActiveDocument().

Struktur dokumen

Dari perspektif Apps Script, Dokumen Google memiliki struktur yang mirip dengan 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 HeaderSection, FooterSection, dan Footnotes.

Namun, ada aturan tentang jenis elemen mana yang dapat berisi jenis lain. Selain itu, Document Service di Apps Script hanya dapat menyisipkan jenis elemen tertentu. Hierarki di bawah ini menunjukkan elemen mana yang dapat dimuat oleh jenis tertentu.

Elemen yang ditampilkan dalam huruf tebal dapat disisipkan; elemen yang bukan tebal hanya dapat dimanipulasi di tempatnya.

Mengganti teks

Apps Script sering digunakan untuk mengganti teks di Google Dokumen. Katakanlah Anda memiliki spreadsheet yang penuh dengan informasi klien dan Anda ingin membuat Google Dokumen yang dipersonalisasi untuk setiap klien. (Jenis operasi ini sering disebut pembuatan email massal.)

Ada banyak cara untuk mengganti teks, tetapi yang paling sederhana adalah metode replaceText() yang ditunjukkan 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 akan lebih mungkin mengetik placeholder ke dalam dokumen sendiri. Fungsi kedua mengganti placeholder dengan properti yang ditentukan dalam objek client.

Perhatikan bahwa kedua fungsi ini menggunakan metode getActiveDocument(), yang hanya berlaku untuk skrip yang dibuat dalam Dokumen Google. 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 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 instance dokumen terbuka saat ini, dan hanya jika skrip terikat dengan dokumen.

Lihat cara menambahkan menu kustom dan dialog ke Google Dokumen Anda. Untuk mempelajari lebih lanjut cara membuat antarmuka kustom untuk dialog atau sidebar, lihat panduan 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 store Google Dokumen. Jika Anda sudah mengembangkan skrip untuk Google Dokumen dan ingin membagikannya kepada dunia, Apps Script memungkinkan Anda publish skrip sebagai add-on sehingga pengguna lain dapat menginstalnya dari add-on store.

Guna mengetahui cara membuat add-on untuk Google Dokumen, lihat panduan memulai untuk membuat add-on Dokumen.

Pemicu

Skrip yang terikat ke Google Dokumen dapat menggunakan pemicu sederhana untuk merespons 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 pemicu ini, lihat Menu kustom di Google Workspace. Meskipun berguna untuk menambahkan menu, pemicu sederhana tidak dapat menggunakan layanan Apps Script yang memerlukan otorisasi.