L'API Google Docs vous permet d'insérer ou de supprimer du texte dans un document. Le déplacement de texte implique les deux opérations, précédées d'un get
du contenu.
Vous pouvez insérer ou supprimer du texte dans les segments (corps, en-tête, pied de page ou note de bas de page) de l'onglet d'un document.
Insérer du texte
Pour insérer du texte dans un document, utilisez la méthode documents.batchUpdate
et incluez un 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 à des emplacements d'index spécifiés dans le corps d'un document. L'exemple utilise trois décalages cibles (25, 50 et 75) et insère une chaîne de dix caractères à chaque 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 tous les index supérieurs de la taille du texte inséré. L'exemple précalcule le résultat de ces modifications d'index afin que les insertions ultérieures se produisent au nouvel offset corrigé. Ainsi, pour insérer aux décalages cibles d'origine de 25, 50 et 75, les index d'insertion réels sont les suivants :
- La première insertion ajoute 10 caractères à l'offset 25.
- La deuxième insertion ajoute 10 caractères à l'offset 50+10=60.
- La troisième insertion ajoute 10 caractères à l'offset 95 (75+10+10).
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 un DeleteContentRangeRequest
.
L'exemple de code suivant montre comment supprimer le texte entre les index 10 et 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 de texte modifie les index de tout le texte "en dessous" dans le segment. Encore une fois, écrire à l'envers peut simplifier la gestion des index.
Déplacer du texte
Pour déplacer du texte, supprimez-le à un emplacement, puis insérez-le ailleurs. La suppression de contenu ne vous donne pas de 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 pour pouvoir l'utiliser dans votre demande 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