تتيح لك Google Docs API إدراج نص في مستند أو حذفه. ينطوي نقل النص
على كلتا العمليتين، ويسبقهما get
للمحتوى.
يمكنك إدراج نص أو حذفه في أيّ من أقسام علامة التبويب في المستند (النص الرئيسي أو الرأس أو التذييل أو الهامش السفلي).
إدراج نص
لإدراج نص في مستند، استخدِم الأسلوب
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()
تبسيط الأمور من خلال الكتابة من الخلف كما هو الحال مع عمليات الإدراج، يؤدي حذف النص إلى تغيير فهارس كل النصوص "أسفل" الجزء. مرة أخرى، يمكن أن يؤدي الكتابة بترتيب عكسي إلى تبسيط التعامل مع الفهارس.
نقل النص
لنقل نص، عليك حذفه من مكان ثم إدراجه في مكان آخر. لا يمنحك حذف المحتوى نسخة منه (لا يتوفّر مفهوم مماثل لملف الحافظة)، لذا عليك استخراج محتوى النطاق أولاً حتى تتمكّن من استخدامه في طلب إدراج النص.