Google Dokümanlar API, bir dokümana metin eklemenize veya silmenize olanak tanır. Metin taşıma işlemi, içeriğin get
ile başlamasından sonra her iki işlemi de içerir.
Doküman sekmesinin herhangi bir bölümüne (gövde, üstbilgi, altbilgi veya dipnot) metin ekleyebilir ya da metin silebilir.
Metin ekle
Bir dokümana metin eklemek için documents.batchUpdate
yöntemini kullanın ve metin ile konumu yükü olarak içeren bir InsertTextRequest
ekleyin.
Aşağıdaki kod örneğinde, bir belgenin gövdesinde belirtilen dizine ekleme konumlarına nasıl bir dizi metin dizesi ekleyeceğiniz gösterilmektedir. Örnekte üç hedef ofset (25, 50 ve 75) kullanılmakta ve her konuma on karakterlik bir dize eklenmektedir.
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()
Her ekleme, daha yüksek numaralı tüm dizinleri eklenen metnin boyutuna göre artırır. Örnekte, sonraki eklemelerin yeni ve düzeltilmiş ofsette gerçekleşmesi için bu dizin değişikliklerinin sonucu önceden hesaplanır. Bu nedenle, 25, 50 ve 75 olan orijinal hedef ofsetlerinde ekleme yapmak için gerçek ekleme dizinleri şunlardır:
- İlk ekleme, 25 ofsetinde 10 karakter ekler.
- İkinci ekleme, 50+10=60 ofsetinde 10 karakter ekler.
- Üçüncü ekleme, 75+10+10=95 ofsetinde 10 karakter ekler.
Metin silme
Bir belgedeki metni silmek için önce silinecek metin aralığını tanımlayan bir Range
oluşturun. Ardından documents.batchUpdate
yöntemini kullanın ve bir DeleteContentRangeRequest
ekleyin.
Aşağıdaki kod örneğinde, bir dokümanın gövdesinde 10. dizin ile 24. dizin arasındaki metnin nasıl silinebileceği gösterilmektedir.
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()
Konuları tersten yazarak basitleştirin. Metin eklemelerde olduğu gibi, metin sildiğinizde segmentteki "altındaki" tüm metinlerin dize dizinleri değişir. Yine de geriye doğru yazma, dizinleri işlemenizi kolaylaştırabilir.
Metni taşıma
Metni taşımak için bir konumda silip başka bir yere eklemeniz gerekir. İçerik silindiğinde kopyası size verilmez (ayrıntı panosuna eşdeğer bir kavram yoktur). Bu nedenle, metin ekleme isteğinizde kullanabilmek için önce aralığın içeriğini ayıklamanız gerekir.