L'API Google Docs vous permet d'insérer ou de supprimer du texte dans un document. Déplacement du texte...
implique les deux opérations, précédées d'un élément get
du contenu.
Vous pouvez insérer ou supprimer du texte dans n'importe quel document tab (corps, en-tête, pied de page ou note de bas de page).
Insérer du texte
Pour insérer du texte dans un document, utilisez la méthode
documents.batchUpdate
et incluez une
InsertTextRequest
avec le texte et l'emplacement
comme charge utile.
L'exemple de code suivant montre comment insérer une série de chaînes de texte au niveau les emplacements d'index spécifiés dans le corps d'un document. Cet exemple utilise trois des décalages cibles (25, 50 et 75), et insère une chaîne de dix caractères à chaque l'emplacement.
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()
Chaque insertion incrémente la valeur de tous les index portant la valeur la plus élevée en fonction de la taille de la texte inséré. L'exemple précalcule le résultat de ces modifications d'index : que les insertions suivantes se produisent au nouveau décalage corrigé. Ainsi, pour insérer aux décalages cibles initiaux de 25, 50 et 75, les index d'insertion réels sont:
- La première insertion ajoute 10 caractères à un décalage de 25 caractères.
- La deuxième insertion ajoute 10 caractères à un décalage de 50 + 10=60.
- La troisième insertion ajoute 10 caractères au décalage de 75 + 10 + 10=95.
Supprimer du texte
Pour supprimer du texte d'un document, commencez par créer un
Range
qui définit la plage de
texte à supprimer. Utilisez ensuite la méthode documents.batchUpdate
et incluez une
DeleteContentRangeRequest
L'exemple de code suivant montre comment supprimer le texte situé entre l'index 10 et l'index 24 dans le corps d'un document.
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()
Simplifiez les choses en écrivant à l'envers. Comme pour les insertions, la suppression texte modifie les index de tout le texte "ci-dessous" dans le segment. Encore une fois, écrire à l'envers peut simplifier le traitement des index.
Déplacer le texte
Pour déplacer du texte, vous devez le supprimer d'un emplacement, puis l'insérer à un autre endroit. Supprimer du contenu ne vous donne pas une copie de celui-ci (il n'existe pas de concept équivalent un presse-papiers). Vous devez donc d'abord extraire le contenu de la plage afin de pouvoir utiliser dans votre requête d'insertion de texte.
Articles associés
- Créer et gérer des documents
- Fusionner du texte dans un document
- Structure d'un document Google Docs