Metin ekleme, silme ve taşıma

Google Dokümanlar API'sı bir dokümana metin eklemenize veya mevcut metinleri silmenize olanak sağlar. Metin taşınıyor önce içeriğin get ifadesinden sonra her iki işlemi de kapsar.

Herhangi bir dokümana metin ekleyebilir veya mevcut metni silebilirsiniz sekmesinin segmentlerine (gövde, üstbilgi, altbilgi veya dipnot) dokunun.

Metin ekle

Bir dokümana metin eklemek için documents.batchUpdate yöntemini kullanarak InsertTextRequest yük olarak metin ve konum kullanılır.

Aşağıdaki kod örneğinde, bir dizi metin dizesini dokümanın gövdesinde belirtilen dizin konumları. Örnekte üç reklam öğesi, uzaklaştırır (25, 50 ve 75) ve her birine on karakterlik bir dize ekler konum.

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 işlemi, yüksek numaralı tüm dizinleri eklenen metin. Örnekte, bu dizin değişikliklerinin sonucunu önceden hesaplayarak sonraki eklemelerin, düzeltilmiş yeni ofsette gerçekleşmesini sağlar. Böylece 25, 50 ve 75'lik orijinal hedef ofsetlerde, gerçek ekleme dizinleri şunlardır:

  • İlk ekleme, 25 uzaklık noktasına 10 karakter ekler.
  • İkinci ekleme, 50+10=60 uzaklığında 10 karakter ekler.
  • Üçüncü ekleme, 75+10+10=95 ofsette 10 karakter ekler.

Metin silme

Bir belgeden metin silmek için önce bir Range silinecek metin. Ardından, documents.batchUpdate yöntemini kullanın ve bir DeleteContentRangeRequest

Aşağıdaki kod örneğinde, dizin 10 arasındaki metni nasıl silebileceğiniz gösterilmektedir bir dokümanın gövdesinde 24'ü içeren bir dizin oluşturur.

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()

Geriye doğru yazarak konuları basitleştirin. Eklemelerde olduğu gibi, metin, "aşağıdaki" tüm metnin dizinlerini değiştiriyor seçin. Tekrar ediyorum, yazılıma geriye doğru, dizinleri yönetmenizi kolaylaştırabilir.

Metni taşı

Taşımak istediğiniz metni bir konumdan silip başka bir yere eklersiniz. Bir içeriği silmeniz o içeriğin bir kopyasını sağlamaz (kullanabileceğiniz bir pano dosyası oluşturur. Böylece, kullanmak için önce aralığın içeriğini girin.