إدراج النص وحذفه ونقله

تتيح لك واجهة برمجة تطبيقات "مستندات Google" إدراج نص في مستند أو حذفه. نقل النص تتضمّن كلتا العمليتين، مسبوقتين بعلامة get من المحتوى.

يمكنك إدراج نص أو حذفه في أي مستند. أقسام tab (النص الأساسي أو الرأس أو التذييل أو الحاشية السفلية).

إدراج نص

لإدراج نص في مستند، استخدم documents.batchUpdate وتضمين InsertTextRequest مع النص والموقع كحمولة.

يوضح نموذج التعليمة البرمجية التالي كيف يمكنك إدراج سلسلة من السلاسل النصية في مواقع فهرس محددة في نص المستند. يستخدم المثال ثلاث والإزاحة المستهدفة (25 و50 و75) وتُدرج سلسلة من عشرة أحرف في كل منها الموقع.

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

يؤدي كل إدخال إلى زيادة جميع الفهارس ذات ترقيم أعلى بحسب حجم النص المدرج. يحسب المثال بشكل مسبق نتيجة تغييرات الفهرس هذه بحيث أن تحدث الإدراجات اللاحقة وفقًا للإزاحة الجديدة التي تم تصحيحها. ومن ثمَّ لإدراج فهارس الإدراج الفعلية عند قيم إزاحة الهدف الأصلي 25 و50 و75 هي:

  • يضيف الإدخال الأول 10 أحرف بالإزاحة 25.
  • يضيف الإدخال الثاني 10 أحرف بالإزاحة 50+10=60.
  • يضيف الإدراج الثالث 10 أحرف إلى الإزاحة 75+10+10=95.

حذف النص

لحذف نص من مستند، عليك أولاً إنشاء Range الذي يحدد نطاق النص المراد حذفه. بعد ذلك، استخدِم الطريقة documents.batchUpdate وأدرِج DeleteContentRangeRequest

يوضح نموذج الرمز البرمجي التالي كيفية حذف النص بين الفهرس 10 والفهرس 24 في نص المستند.

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

تبسيط المسائل القانونية من خلال الكتابة بخط عكسي كما هو الحال مع الإدخالات، يؤدي حذف يغير النص الفهارس الخاصة بكل النص "أدناه" في الشريحة. مرة أخرى، كتابة للخلف في تبسيط تعاملك مع الفهارس.

نقل النص

لنقل النص، عليك حذفه في مكان ثم إدراجه في مكان آخر. لا يمنحك حذف المحتوى نسخة منه (لا يوجد مفهوم مكافئ حافظة) لذلك يجب عليك استخراج محتويات النطاق أولاً حتى تتمكن من استخدام في طلب إدراج النص.