Google Docs API memungkinkan Anda menyisipkan atau menghapus teks dalam dokumen. Memindahkan teks
melibatkan kedua operasi, yang diawali dengan get
konten.
Anda dapat menyisipkan atau menghapus teks di dokumen mana pun segmen tab (isi, header, footer, atau catatan kaki).
Sisipkan teks
Untuk menyisipkan teks ke dalam dokumen, gunakan
documents.batchUpdate
dan menyertakan
InsertTextRequest
dengan teks dan lokasi
sebagai payload.
Contoh kode berikut menunjukkan cara menyisipkan serangkaian {i>string<i} teks di lokasi indeks tertentu dalam isi dokumen. Contoh ini menggunakan tiga target offset (25, 50, dan 75) dan memasukkan string sepuluh karakter lokasi HTTP/HTTPS.
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 menambah semua indeks bernomor lebih tinggi berdasarkan ukuran teks yang disisipkan. Contoh tersebut menghitung sebelumnya hasil perubahan indeks ini bahwa penyisipan berikutnya terjadi pada offset baru yang dikoreksi. Untuk menyisipkan pada offset target asli 25, 50, dan 75, indeks penyisipan aktual adalah:
- Penyisipan pertama menambahkan 10 karakter dengan 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, pertama-tama buat
Range
yang menentukan rentang
teks yang akan dihapus. Lalu gunakan metode documents.batchUpdate
dan sertakan
DeleteContentRangeRequest
.
Contoh kode berikut menunjukkan cara menghapus teks di antara indeks 10 dan indeks 24 dalam {i> body<i} 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()
Menyederhanakan masalah dengan menulis mundur. Seperti halnya penyisipan, menghapus mengubah indeks semua teks "di bawah" dalam segmen ini. Sekali lagi, menulis mundur dapat menyederhanakan penanganan indeks Anda.
Pindahkan teks
Untuk memindahkan teks, Anda menghapusnya di satu lokasi, lalu menyisipkannya di tempat lain. Menghapus konten tidak memberi Anda salinannya (tidak ada konsep yang setara tentang papan klip) sehingga Anda harus mengekstrak isi rentang terlebih dahulu sehingga Anda dapat menggunakan dalam permintaan penyisipan teks Anda.