Mit der Google Docs API können Sie Text in einem Dokument einfügen oder löschen. Text wird verschoben
beinhaltet beide Vorgänge, denen ein get
des Inhalts vorangestellt ist.
Sie können in jedem Dokument Text einfügen oder löschen. tab enthält (Text, Kopf-, Fußzeile oder Fußnote).
Text einfügen
Um Text in ein Dokument einzufügen, verwenden Sie die
documents.batchUpdate
und fügen Sie ein
InsertTextRequest
mit dem Text und dem Standort als Nutzlast.
Das folgende Codebeispiel zeigt, wie Sie eine Reihe von Textzeichenfolgen unter angegebene Indexspeicherorte im Textkörper eines Dokuments. In diesem Beispiel werden drei Ziel-Offsets (25, 50 und 75) an und fügt jeweils eine zehnstellige Zeichenfolge Standort.
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()
Mit jeder Einfügung werden alle höher nummerierten Indexe um die Größe des eingefügter Text. Im Beispiel wird das Ergebnis dieser Indexänderungen vorab berechnet, dass nachfolgende Einfügungen mit dem neuen, korrigierten Offset erfolgen. Um also mit den ursprünglichen Ziel-Offsets von 25, 50 und 75, sind die tatsächlichen Platzhalterindizes sind:
- Beim ersten Einfügen werden 10 Zeichen bei einem Offset von 25 Zeichen hinzugefügt.
- Beim zweiten Einfügen werden 10 Zeichen bei einem Offset von 50 + 10=60 hinzugefügt.
- Beim dritten Einfügen werden 10 Zeichen bei einem Offset von 75 + 10 + 10=95 hinzugefügt.
Text löschen
Um Text aus einem Dokument zu löschen, erstellen Sie zunächst eine
Range
definiert den Bereich der
Text, der gelöscht werden soll. Verwenden Sie dann die Methode documents.batchUpdate
und fügen Sie
DeleteContentRangeRequest
Das folgende Codebeispiel zeigt, wie Sie den Text zwischen Index 10 löschen können. und Index 24 im Textkörper eines Dokuments.
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()
Vereinfachen Sie Sachverhalte durch Rückwärtsschrift. Wie bei Einfügungen ist auch das Löschen Text ändert die Indizes des gesamten Textes "unten" im Segment. Wie bereits erwähnt, kann die Handhabung von Indexen vereinfachen.
Text verschieben
Um Text zu verschieben, löschen Sie ihn an einer Stelle und fügen ihn dann an einer anderen Stelle ein. Wenn Sie Inhalte löschen, erhalten Sie keine Kopie davon. Zwischenablage kopieren. Sie müssen also zuerst den Inhalt des Bereichs extrahieren, in Ihre Anfrage zum Einfügen von Text ein.
Weitere Informationen
- Dokumente erstellen und verwalten
- Text in einem Dokument zusammenführen
- Struktur eines Google Docs-Dokuments