Google Docs API memungkinkan Anda menyisipkan atau menghapus teks dalam dokumen. Memindahkan teks
melibatkan kedua operasi, yang didahului oleh get
konten.
Anda dapat menyisipkan atau menghapus teks di segmen tab dokumen (isi, header, footer, atau catatan kaki).
Sisipkan teks
Untuk menyisipkan teks ke dalam dokumen, gunakan metode
documents.batchUpdate
dan sertakan
InsertTextRequest
dengan teks dan lokasi sebagai payload.
Contoh kode berikut menunjukkan cara menyisipkan serangkaian string teks di lokasi indeks yang ditentukan dalam isi dokumen. Contoh ini menggunakan tiga offset target (25, 50, dan 75) dan menyisipkan string sepuluh karakter di setiap lokasi.
Java
List<Request> requests = new ArrayList<>(); requests.add(new Request().setInsertText(new InsertTextRequest() .setText(text1) .setLocation(new Location().setIndex(25).setTabId(TAB_ID)))); requests.add(new Request().setInsertText(new InsertTextRequest() .setText(text2) .setLocation(new Location().setIndex(50).setTabId(TAB_ID)))); requests.add(new Request().setInsertText(new InsertTextRequest() .setText(text3) .setLocation(new Location().setIndex(75).setTabId(TAB_ID)))); BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests); BatchUpdateDocumentResponse response = docsService.documents() .batchUpdate(DOCUMENT_ID, body).execute();
PHP
$requests = array(); $requests[] = new Google_Service_Docs_Request(array( 'insertText' => array( 'text' => $text1, 'location' => array( 'index' => 25, 'tabId' => TAB_ID, ), ), 'insertText' => array( 'text' => $text2, 'location' => array( 'index' => 50, 'tabId' => TAB_ID, ), ), 'insertText' => array( 'text' => $text3, 'location' => array( 'index' => 75, 'tabId' => TAB_ID, ), ), )); $batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array( 'requests' => $requests )); $response = $service->documents->batchUpdate($documentId, $batchUpdateRequest);
Python
requests = [ { 'insertText': { 'location': { 'index': 25, 'tabId': TAB_ID }, 'text': text1 } }, { 'insertText': { 'location': { 'index': 50, 'tabId': TAB_ID }, 'text': text2 } }, { 'insertText': { 'location': { 'index': 75, 'tabId': TAB_ID }, 'text': text3 } }, ] result = service.documents().batchUpdate( documentId=DOCUMENT_ID, body={'requests': requests}).execute()
Setiap penyisipan akan menambah semua indeks bernomor lebih tinggi dengan ukuran teks yang disisipkan. Contoh ini menghitung hasil perubahan indeks ini terlebih dahulu sehingga penyisipan berikutnya terjadi pada offset baru yang dikoreksi. Jadi, untuk menyisipkan pada offset target asli 25, 50, dan 75, indeks penyisipan sebenarnya adalah:
- Penyisipan pertama menambahkan 10 karakter pada offset 25.
- Penyisipan kedua menambahkan 10 karakter pada offset 50+10=60.
- Penyisipan ketiga menambahkan 10 karakter pada offset 75+10+10=95.
Hapus teks
Untuk menghapus teks dari dokumen, buat
Range
terlebih dahulu yang menentukan rentang
teks yang akan dihapus. Kemudian, gunakan metode documents.batchUpdate
dan sertakan
DeleteContentRangeRequest
.
Contoh kode berikut menunjukkan cara menghapus teks antara indeks 10 dan indeks 24 dalam isi dokumen.
Java
List<Request> requests = new ArrayList<>(); requests.add(new Request().setDeleteContentRange( new DeleteContentRangeRequest() .setRange(new Range() .setStartIndex(10) .setEndIndex(24) .setTabId(TAB_ID)) )); BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests); BatchUpdateDocumentResponse response = docsService.documents() .batchUpdate(DOCUMENT_ID, body).execute();
PHP
$requests = array(); $requests[] = new Google_Service_Docs_Request(array( 'deleteContentRange' => array( 'range' => array( 'startIndex' => 10, 'endIndex' => 24, 'tabId' => TAB_ID ), ), )); $batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array( 'requests' => $requests )); $response = $service->documents->batchUpdate($documentId, $batchUpdateRequest);
Python
requests = [ { 'deleteContentRange': { 'range': { 'startIndex': 10, 'endIndex': 24, 'tabId': TAB_ID } } }, ] result = service.documents().batchUpdate( documentId=DOCUMENT_ID, body={'requests': requests}).execute()
Sederhanakan masalah dengan menulis mundur. Seperti penyisipan, penghapusan teks akan mengubah indeks semua teks "di bawah" dalam segmen. Sekali lagi, menulis mundur dapat menyederhanakan penanganan indeks.
Memindahkan teks
Untuk memindahkan teks, Anda menghapusnya di satu lokasi, lalu menyisipkannya di tempat lain. Menghapus konten tidak akan memberi Anda salinannya (tidak ada konsep yang setara dengan papan klip), jadi Anda harus mengekstrak konten rentang terlebih dahulu agar dapat digunakan dalam permintaan sisipan teks.