Text einfügen, löschen und verschieben

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 verwenden, Sie müssen also zuerst den Inhalt des Bereichs extrahieren, in Ihre Anfrage zum Einfügen von Text ein.