Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Mit der Google Docs API können Sie Text in ein Dokument einfügen oder daraus löschen. Beim Verschieben von Text sind beide Vorgänge erforderlich, wobei dem get des Inhalts ein get vorangestellt wird.
Sie können Text in die Segmente (Hauptteil, Kopfzeile, Fußzeile oder Fußnote) eines Dokumenttabs einfügen oder daraus löschen.
Text einfügen
Um Text in ein Dokument einzufügen, verwenden Sie die Methode documents.batchUpdate und fügen Sie eine InsertTextRequest mit dem Text und dem Speicherort als Nutzlast ein.
Das folgende Codebeispiel zeigt, wie Sie eine Reihe von Textstrings an bestimmten Indexpositionen in den Text eines Dokuments einfügen können. Im Beispiel werden drei Ziel-Offsets (25, 50 und 75) verwendet und an jeder Position wird ein String mit zehn Zeichen eingefügt.
Bei jeder Einfügung werden alle höher nummerierten Indexe um die Größe des eingefügten Texts erhöht. Im Beispiel wird das Ergebnis dieser Indexänderungen vorab berechnet, sodass nachfolgende Einfügungen am neuen, korrigierten Offset erfolgen. Wenn Sie also an den ursprünglichen Ziel-Offsets von 25, 50 und 75 einfügen möchten, sind die tatsächlichen Einfügeindexe:
Beim ersten Einfügen werden 10 Zeichen an der Position 25 hinzugefügt.
Beim zweiten Einfügen werden 10 Zeichen an der Position 50+10=60 hinzugefügt.
Bei der dritten Einfügung werden 10 Zeichen an der Position 75 + 10 + 10=95 hinzugefügt.
Text löschen
Wenn Sie Text aus einem Dokument löschen möchten, müssen Sie zuerst ein Range erstellen, das den zu löschenden Textbereich definiert. Verwenden Sie dann die Methode documents.batchUpdate und fügen Sie ein DeleteContentRangeRequest ein.
Das folgende Codebeispiel zeigt, wie Sie den Text zwischen Index 10 und Index 24 im Textkörper eines Dokuments löschen können.
Vereinfachen Sie die Dinge, indem Sie rückwärts schreiben. Wie bei Einfügungen werden durch das Löschen von Text die Indexe des gesamten Textes „darunter“ im Segment geändert. Auch hier kann rückwärts schreiben die Verarbeitung von Indexen vereinfachen.
Text verschieben
Wenn Sie Text verschieben möchten, löschen Sie ihn an einer Stelle und fügen ihn an einer anderen Stelle ein.
Wenn Sie Inhalte löschen, erhalten Sie keine Kopie davon (es gibt kein Äquivalent zur Zwischenablage). Sie müssen also zuerst die Inhalte des Bereichs extrahieren, damit Sie sie in Ihrer Anfrage zum Einfügen von Text verwenden können.
[null,null,["Zuletzt aktualisiert: 2025-08-29 (UTC)."],[],[],null,["# Insert, delete, and move text\n\nThe Google Docs API lets you insert or delete text in a document. Moving text\ninvolves both operations, preceded by a `get` of the content.\n\nYou can insert or delete text in any of a document\n[tab](/workspace/docs/api/how-tos/tabs)'s segments (body, header, footer, or\nfootnote).\n\nInsert text\n-----------\n\nTo insert text into a document, use the\n[`documents.batchUpdate`](/workspace/docs/api/reference/rest/v1/documents/batchUpdate)\nmethod and include an\n[`InsertTextRequest`](/workspace/docs/api/reference/rest/v1/documents/request#inserttextrequest)\nwith the text and location as the payload.\n\nThe following code sample shows how you might insert a series of text strings at\nspecified index locations in the body of a document. The example uses three\ntarget offsets (25, 50, and 75) and inserts a ten-character string at each\nlocation.\n**Note:** Indexes are measured in UTF-16 code units. For more information, see [Start and end indexes](/workspace/docs/api/concepts/structure#indexes). \n\n### Java\n\n\n```java\nList\u003cRequest\u003e requests = new ArrayList\u003c\u003e();\nrequests.add(new Request().setInsertText(new InsertTextRequest()\n .setText(text1)\n .setLocation(new Location().setIndex(25).setTabId(TAB_ID))));\n\nrequests.add(new Request().setInsertText(new InsertTextRequest()\n .setText(text2)\n .setLocation(new Location().setIndex(50).setTabId(TAB_ID))));\n\nrequests.add(new Request().setInsertText(new InsertTextRequest()\n .setText(text3)\n .setLocation(new Location().setIndex(75).setTabId(TAB_ID))));\n\nBatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);\nBatchUpdateDocumentResponse response = docsService.documents()\n .batchUpdate(DOCUMENT_ID, body).execute();\n```\n\n\u003cbr /\u003e\n\n### PHP\n\n\n```php\n$requests = array();\n$requests[] = new Google_Service_Docs_Request(array(\n 'insertText' =\u003e array(\n 'text' =\u003e $text1,\n 'location' =\u003e array(\n 'index' =\u003e 25,\n 'tabId' =\u003e TAB_ID,\n ),\n ),\n 'insertText' =\u003e array(\n 'text' =\u003e $text2,\n 'location' =\u003e array(\n 'index' =\u003e 50,\n 'tabId' =\u003e TAB_ID,\n ),\n ),\n 'insertText' =\u003e array(\n 'text' =\u003e $text3,\n 'location' =\u003e array(\n 'index' =\u003e 75,\n 'tabId' =\u003e TAB_ID,\n ),\n ),\n));\n\n$batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array(\n 'requests' =\u003e $requests\n));\n\n$response = $service-\u003edocuments-\u003ebatchUpdate($documentId, $batchUpdateRequest);\n```\n\n\u003cbr /\u003e\n\n### Python\n\n\n```python\nrequests = [\n {\n 'insertText': {\n 'location': {\n 'index': 25,\n 'tabId': TAB_ID\n },\n 'text': text1\n }\n },\n {\n 'insertText': {\n 'location': {\n 'index': 50,\n 'tabId': TAB_ID\n },\n 'text': text2\n }\n },\n {\n 'insertText': {\n 'location': {\n 'index': 75,\n 'tabId': TAB_ID\n },\n 'text': text3\n }\n },\n]\n\nresult = service.documents().batchUpdate(\n documentId=DOCUMENT_ID, body={'requests': requests}).execute()\n```\n\n\u003cbr /\u003e\n\nEach insertion increments all the higher-numbered indexes by the size of the\ninserted text. The example precalculates the result of these index changes so\nthat subsequent insertions happen at the new, corrected offset. Thus to insert\nat the original target offsets of 25, 50, and 75, the actual insertion indexes\nare:\n\n- First insertion adds 10 characters at offset 25.\n- Second insertion adds 10 characters at offset 50+10=60.\n- Third insertion adds 10 characters at offset 75+10+10=95.\n\n| **Simplify matters by writing backwards.** To avoid having to precalculate these offset changes, order your insertions to \"write backwards\": do the insertion at the highest-numbered index first, working your way towards the beginning with each insertion. This ordering makes sure that each write's offsets are unaffected by the preceding ones.\n\nDelete text\n-----------\n\nTo delete text from a document, first construct a\n[`Range`](/workspace/docs/api/reference/rest/v1/documents#range) that defines\nthe range of text to delete. Then use the `documents.batchUpdate` method and\ninclude a\n[`DeleteContentRangeRequest`](/workspace/docs/api/reference/rest/v1/documents/request#deletecontentrangerequest).\n| Be sure you understand the [rules and behavior](/workspace/docs/api/concepts/rules-behavior#delete-text) associated with deleting text.\n\nThe following code sample shows how you might delete the text between index 10\nand index 24 in the body of a document. \n\n### Java\n\n\n```java\nList\u003cRequest\u003e requests = new ArrayList\u003c\u003e();\nrequests.add(new Request().setDeleteContentRange(\n new DeleteContentRangeRequest()\n .setRange(new Range()\n .setStartIndex(10)\n .setEndIndex(24)\n .setTabId(TAB_ID))\n ));\n\nBatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);\nBatchUpdateDocumentResponse response = docsService.documents()\n .batchUpdate(DOCUMENT_ID, body).execute();\n```\n\n\u003cbr /\u003e\n\n### PHP\n\n\n```php\n$requests = array();\n$requests[] = new Google_Service_Docs_Request(array(\n 'deleteContentRange' =\u003e array(\n 'range' =\u003e array(\n 'startIndex' =\u003e 10,\n 'endIndex' =\u003e 24,\n 'tabId' =\u003e TAB_ID\n ),\n ),\n));\n\n$batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array(\n 'requests' =\u003e $requests\n));\n\n$response = $service-\u003edocuments-\u003ebatchUpdate($documentId, $batchUpdateRequest);\n```\n\n\u003cbr /\u003e\n\n### Python\n\n\n```python\nrequests = [\n {\n 'deleteContentRange': {\n 'range': {\n 'startIndex': 10,\n 'endIndex': 24,\n 'tabId': TAB_ID\n }\n\n }\n\n },\n]\nresult = service.documents().batchUpdate(\n documentId=DOCUMENT_ID, body={'requests': requests}).execute()\n```\n\n\u003cbr /\u003e\n\n**Simplify matters by writing backwards.** As with insertions, deleting\ntext alters the indexes of all the text \"below\" in the segment. Again, [writing\nbackwards](#write_backwards) can simplify your handling of indexes.\n\nMove text\n---------\n\nTo move text, you delete it in one location and then insert it elsewhere.\nDeleting content doesn't give you a copy of it (there's no equivalent concept of\na clipboard) so you must extract the contents of the range first so you can use\nin your insert text request.\n\nRelated topics\n--------------\n\n- [Create and manage documents](/workspace/docs/api/how-tos/documents)\n- [Merge text into a document](/workspace/docs/api/how-tos/merge)\n- [Structure of a Google Docs document](/workspace/docs/api/concepts/structure)"]]