Interfejs Google Docs API umożliwia wstawianie i usuwanie tekstu w dokumencie. Przenoszenie tekstu obejmuje obie operacje poprzedzone get
treści.
Tekst możesz wstawiać i usuwać w dowolnym segmencie karty dokumentu (tekst główny, nagłówek, stopka lub przypis).
Wstaw tekst
Aby wstawić tekst do dokumentu, użyj metody documents.batchUpdate
i dołącz InsertTextRequest
z tekstem i lokalizacją jako ładunkiem.
Poniższy przykładowy kod pokazuje, jak wstawić ciągi tekstowe w określonych miejscach indeksu w ciele dokumentu. Przykład używa 3 wartości przesunięcia docelowego (25, 50 i 75) i wstawia w każdym miejscu ciąg znaków o długości 10 znaków.
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()
Każde wstawienie zwiększa wszystkie indeksy o większej numeracji o rozmiar wstawianego tekstu. Przykładowo, wynik tych zmian indeksu jest obliczany z wyprzedzeniem, aby kolejne wstawiane elementy były dodawane z nowym, poprawionym przesunięciem. Dlatego w przypadku wstawiania przy pierwotnych wartościach przesunięcia docelowego 25, 50 i 75 wartości indeksów rzeczywistego wstawiania są następujące:
- Pierwsze wstawienie dodaje 10 znaków w przesuniętych o 25 znaków.
- Drugie wstawienie dodaje 10 znaków w offset 50+10=60.
- Trzecie wstawienie dodaje 10 znaków w wymiarze 75 + 10 + 10=95.
Usuwanie tekstu
Aby usunąć tekst z dokumentu, najpierw utwórz element Range
, który definiuje zakres tekstu do usunięcia. Następnie użyj metody documents.batchUpdate
, podając DeleteContentRangeRequest
.
Poniższy przykładowy kod pokazuje, jak usunąć tekst między indeksem 10 a 24 w tekstowej treści dokumentu.
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()
Uprość sobie życie, pisząc od tyłu do przodu. Podobnie jak w przypadku wstawień, usunięcie tekstu zmienia indeksy całego tekstu „poniżej” w danym segmencie. Ponownie, pisanie od końca może ułatwić obsługę indeksów.
Przenoszenie tekstu
Aby przenieść tekst, należy go usunąć z jednego miejsca i wstawić w innym. Usunięcie treści nie powoduje utworzenia ich kopii (nie ma odpowiednika schowka), więc musisz najpierw wyodrębnić zawartość zakresu, aby móc użyć jej w żądaniu wstawiania tekstu.
Powiązane artykuły
- Tworzenie dokumentów i zarządzanie nimi
- Scalanie tekstu w dokumencie
- Struktura dokumentu w Dokumentach Google