L'API Google Documenti consente di inserire o eliminare testo in un documento. Spostamento del testo
coinvolge entrambe le operazioni, precedute da un get
dei contenuti.
Puoi inserire o eliminare testo in qualsiasi documento segmenti di scheda (corpo, intestazione, piè di pagina o nota a piè di pagina).
Inserisci testo
Per inserire testo in un documento, utilizza la
documents.batchUpdate
e includi un'etichetta
InsertTextRequest
con il testo e la posizione come payload.
Il seguente esempio di codice mostra come inserire una serie di stringhe di testo in posizioni di indice specificate nel corpo di un documento. L'esempio utilizza tre (25, 50 e 75) e inserisce una stringa di dieci caratteri in corrispondenza in ogni località.
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()
Ogni inserimento incrementa tutti gli indici con numero maggiore in base alla dimensione il testo inserito. L'esempio precalcola il risultato di queste modifiche dell'indice in modo che che gli inserimenti successivi avvengano con il nuovo offset corretto. Pertanto, per inserire agli offset originali di 25, 50 e 75, gli indici di inserimento effettivi sono:
- Il primo inserimento aggiunge 10 caratteri all'offset 25.
- Il secondo inserimento aggiunge 10 caratteri all'offset 50+10=60.
- Il terzo inserimento aggiunge 10 caratteri all'offset 75+10+10=95.
Eliminare il testo
Per eliminare testo da un documento, per prima cosa costruisci una
Range
che definisce l'intervallo di
testo da eliminare. Poi usa il metodo documents.batchUpdate
e includi un'opzione
DeleteContentRangeRequest
Il seguente esempio di codice mostra come eliminare il testo tra l'indice 10 e l'indice 24 nel corpo di un documento.
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()
Per semplificare le cose, scrivi a ritroso. Come per gli inserimenti, l'eliminazione "testo" altera gli indici di tutto il testo "sotto" nel segmento. Anche in questo caso, a ritroso, possono semplificare la gestione degli indici.
Sposta testo
Per spostare il testo, eliminalo in una posizione e poi inseriscilo altrove. L'eliminazione di un contenuto non ne fornisce una copia (non esiste un concetto equivalente di un blocco note), quindi devi prima estrarre i contenuti dell'intervallo in modo da poter utilizzare nella richiesta di inserimento di testo.
Argomenti correlati
- Creare e gestire documenti
- Unire il testo in un documento
- Struttura di un documento di Documenti Google