L'API Documenti Google consente di inserire o eliminare testo in un documento. Lo spostamento del testo comporta entrambe le operazioni, precedute da un'operazione get dei contenuti.
Puoi inserire o eliminare testo in uno qualsiasi dei segmenti di schede all'interno di un documento (corpo, intestazione, piè di pagina o nota a piè di pagina). Per ulteriori informazioni, consulta Utilizzare le schede.
Inserisci testo
Per inserire testo in un documento, utilizza il
documents.batchUpdate
metodo e includi un
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 offset di destinazione (25, 50 e 75) e inserisce una stringa di dieci caratteri in ogni posizione.
Java
List<Request> requests = new ArrayList<>(); requests.add(new Request().setInsertText(new InsertTextRequest() .setText(text1) .setLocation(new Location().setIndex(25).setTabId(<var>TAB_ID</var>)))); requests.add(new Request().setInsertText(new InsertTextRequest() .setText(text2) .setLocation(new Location().setIndex(50).setTabId(<var>TAB_ID</var>)))); requests.add(new Request().setInsertText(new InsertTextRequest() .setText(text3) .setLocation(new Location().setIndex(75).setTabId(<var>TAB_ID</var>)))); BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests); BatchUpdateDocumentResponse response = docsService.documents() .batchUpdate(<var>DOCUMENT_ID</var>, body).execute();
PHP
$requests = array(); $requests[] = new Google_Service_Docs_Request(array( 'insertText' => array( 'text' => $text1, 'location' => array( 'index' => 25, 'tabId' => <var>TAB_ID</var>, ), ), )); $requests[] = new Google_Service_Docs_Request(array( 'insertText' => array( 'text' => $text2, 'location' => array( 'index' => 50, 'tabId' => <var>TAB_ID</var>, ), ), )); $requests[] = new Google_Service_Docs_Request(array( 'insertText' => array( 'text' => $text3, 'location' => array( 'index' => 75, 'tabId' => <var>TAB_ID</var>, ), ), )); $batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array( 'requests' => $requests )); $response = $service->documents->batchUpdate($<var>DOCUMENT_ID</var>, $batchUpdateRequest);
Python
requests = [ { 'insertText': { 'location': { 'index': 25, 'tabId': <var>TAB_ID</var> }, 'text': text1 } }, { 'insertText': { 'location': { 'index': 50, 'tabId': <var>TAB_ID</var> }, 'text': text2 } }, { 'insertText': { 'location': { 'index': 75, 'tabId': <var>TAB_ID</var> }, 'text': text3 } }, ] result = service.documents().batchUpdate( documentId=<var>DOCUMENT_ID</var>, body={'requests': requests}).execute()
Ogni inserimento incrementa tutti gli indici con numeri più alti in base alle dimensioni del testo inserito. L'esempio precalcola il risultato di queste modifiche dell'indice in modo che gli inserimenti successivi avvengano al nuovo offset corretto. Pertanto, per inserire gli offset di destinazione 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.
Elimina testo
Per eliminare testo da un documento, crea prima un
Range che definisca
l'intervallo di testo da eliminare. Poi utilizza il metodo documents.batchUpdate e
includi un
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(<var>TAB_ID</var>)) )); BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests); BatchUpdateDocumentResponse response = docsService.documents() .batchUpdate(<var>DOCUMENT_ID</var>, body).execute();
PHP
$requests = array(); $requests[] = new Google_Service_Docs_Request(array( 'deleteContentRange' => array( 'range' => array( 'startIndex' => 10, 'endIndex' => 24, 'tabId' => <var>TAB_ID</var> ), ), )); $batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array( 'requests' => $requests )); $response = $service->documents->batchUpdate(<var>DOCUMENT_ID</var>, $batchUpdateRequest);
Python
requests = [ { 'deleteContentRange': { 'range': { 'startIndex': 10, 'endIndex': 24, 'tabId': <var>TAB_ID</var> } } }, ] result = service.documents().batchUpdate( documentId=<var>DOCUMENT_ID</var>, body={'requests': requests}).execute()
Come per gli inserimenti, l'eliminazione del testo modifica gli indici di tutto il testo che segue nel segmento. Anche in questo caso, scrivere all'indietro può semplificare la gestione degli indici.
Sposta testo
Per spostare il testo, devi eliminarlo in una posizione e poi inserirlo altrove. L'eliminazione dei contenuti non ti fornisce una copia (non esiste un concetto equivalente di appunti), quindi devi prima estrarre i contenuti dell'intervallo in modo da poterli utilizzare nella richiesta di inserimento del testo.
Argomenti correlati
- Creare e gestire documenti
- Unire testo in un documento
- Struttura di un documento di Documenti Google