Metin ekleme, silme ve taşıma

Google Dokümanlar API'sı, bir dokümana metin eklemenize veya dokümandaki metni silmenize olanak tanır. Metin taşıma işlemi, her iki işlemi de içerir ve öncesinde içeriğin get kadarı gelir.

Dokümanın segmentlerinden (başlık, altbilgi, dipnot veya gövde) herhangi birine metin ekleyebilir veya mevcut metinleri silebilirsiniz.

Metin ekleme

Bir belgeye metin eklemek için BatchUpdate yöntemini kullanın ve yük olarak metin ve konum bilgisine sahip bir InsertTextRequest ekleyin.

Aşağıdaki örnekte, bir belgenin gövdesindeki belirtilen dizin konumlarına nasıl bir metin dizesi ekleyebileceğiniz gösterilmektedir. Örnekte üç hedef ofset (25, 50 ve 75) seçilir ve her bir konuma on karakterli bir dize eklenir.

Java

        List<Request> requests = new ArrayList<>();
        requests.add(new Request().setInsertText(new InsertTextRequest()
                .setText(text1)
                .setLocation(new Location().setIndex(25))));

        requests.add(new Request().setInsertText(new InsertTextRequest()
                .setText(text2)
                .setLocation(new Location().setIndex(50))));

        requests.add(new Request().setInsertText(new InsertTextRequest()
                .setText(text3)
                .setLocation(new Location().setIndex(75))));

        BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);
        BatchUpdateDocumentResponse response = docsService.documents()
                .batchUpdate(DOCUMENT_ID, body).execute();

2.999

$requests = array();
$requests[] = new Google_Service_Docs_Request(array(
    'insertText' => array(
        'text' => $text1,
        'location' => array(
            'index' => 25,
        ),
    ),
    'insertText' => array(
        'text' => $text2,
        'location' => array(
            'index' => 50,
        ),
    ),
    'insertText' => array(
        'text' => $text3,
        'location' => array(
            'index' => 75,
        ),
    ),
));

$batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array(
    'requests' => $requests
));

$response = $service->documents->batchUpdate($documentId, $batchUpdateRequest);

Python

    requests = [
         {
            'insertText': {
                'location': {
                    'index': 25,
                },
                'text': text1
            }
        },
                 {
            'insertText': {
                'location': {
                    'index': 50,
                },
                'text': text2
            }
        },
                 {
            'insertText': {
                'location': {
                    'index': 75,
                },
                'text': text3
            }
        },
    ]

    result = service.documents().batchUpdate(
        documentId=DOCUMENT_ID, body={'requests': requests}).execute()

Her ekleme işlemi, daha yüksek numaralı tüm dizinleri eklenen metnin boyutuna göre artırır. Örnek, bu dizin değişikliklerinin sonucunu önceden hesaplar. Böylece sonraki eklemeler yeni, düzeltilmiş ofsette gerçekleşir. Dolayısıyla, 25, 50 ve 75 olan orijinal hedef ofsetlerine eklendiğinde gerçek ekleme dizinleri şöyle olur:

  • İlk ekleme, göreli konum 25'te 10 karakter ekler.
  • İkinci ekleme, ofset 50+10=60 konumunda 10 karakter ekler.
  • Üçüncü ekleme, 75+10+10=95 ofsetinde 10 karakter ekler.

Metin siliniyor

Bir belgeden metin silmek için öncelikle silinecek metin aralığını tanımlayan bir Aralık oluşturun. Ardından, BatchUpdate yöntemini kullanın ve bir DeleteContentRangeRequest ekleyin.

Aşağıdaki örnekte, bir dokümanın gövdesinde 10. dizin ile 24. dizin arasındaki metni nasıl silebileceğiniz gösterilmektedir.

Java

        List<Request> requests = new ArrayList<>();
        requests.add(new Request().setDeleteContentRange(
                new DeleteContentRangeRequest()
                        .setRange(new Range()
                                .setStartIndex(10)
                                .setEndIndex(24))
            ));

        BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);
        BatchUpdateDocumentResponse response = docsService.documents()
                .batchUpdate(DOCUMENT_ID, body).execute();

2.999

$requests = array();
$requests[] = new Google_Service_Docs_Request(array(
    'deleteContentRange' => array(
        'range' => array(
            'startIndex' => 10,
            'endIndex' => 24
        ),
    ),
));

$batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array(
    'requests' => $requests
));

$response = $service->documents->batchUpdate($documentId, $batchUpdateRequest);

Python

    requests = [
        {
            'deleteContentRange': {
                'range': {
                    'startIndex': 10,
                    'endIndex': 24,
                }

            }

        },
    ]
    result = service.documents().batchUpdate(
        documentId=DOCUMENT_ID, body={'requests': requests}).execute()

Geriye yazarak konuları basitleştirme Araya eklemelerde olduğu gibi, metnin silinmesi segmentin "altında" yer alan tüm metnin dizinlerini değiştirir. Geriye doğru yazmak da dizinleri işleme sürecinizi kolaylaştırabilir.

Metin taşınıyor

Taşımak için metni bir konuma silip başka bir konuma eklersiniz. Ancak içeriği silmek size bunun bir kopyasını vermez (örneğin, pano için eşdeğer bir kavram yoktur). Bu nedenle, ekleme isteğinizde kullanmak için aralığın içeriğini çıkarmanız gerekir.