API Google Tài liệu cho phép bạn chèn hoặc xoá văn bản trong tài liệu. Đang di chuyển văn bản
bao gồm cả hai thao tác, đứng sau get
của nội dung.
Bạn có thể chèn hoặc xoá văn bản trong bất kỳ tài liệu nào các phân đoạn của thẻ (phần thân, đầu trang, chân trang hoặc chú thích cuối trang).
Chèn văn bản
Để chèn văn bản vào tài liệu, hãy sử dụng
documents.batchUpdate
và bao gồm một
InsertTextRequest
với văn bản và vị trí là tải trọng.
Mã mẫu sau đây minh hoạ cách bạn có thể chèn một loạt chuỗi văn bản tại vị trí chỉ mục được chỉ định trong phần nội dung của tài liệu. Ví dụ này sử dụng 3 độ lệch mục tiêu (25, 50 và 75) và chèn một chuỗi gồm 10 ký tự vào mỗi vị trí.
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()
Mỗi lần chèn sẽ tăng tất cả chỉ mục được đánh số cao hơn theo kích thước của văn bản được chèn. Ví dụ này tính toán trước kết quả của những thay đổi trong chỉ mục này, vì vậy, rằng các lần chèn tiếp theo xảy ra tại độ lệch mới, đã được sửa. Do đó, cần chèn tại vị trí bù trừ mục tiêu ban đầu là 25, 50 và 75, chỉ số chèn thực tế là:
- Lần chèn đầu tiên sẽ thêm 10 ký tự tại độ lệch 25.
- Chèn thứ hai thêm 10 ký tự tại độ lệch 50 + 10=60.
- Chèn thứ ba thêm 10 ký tự tại độ lệch 75 + 10 + 10=95.
Xoá văn bản
Để xoá văn bản khỏi tài liệu, trước tiên hãy tạo một
Range
xác định phạm vi của
văn bản cần xóa. Sau đó, sử dụng phương thức documents.batchUpdate
và thêm vào
DeleteContentRangeRequest
.
Mã mẫu sau đây cho thấy cách bạn có thể xoá văn bản giữa chỉ mục 10 và chỉ mục 24 trong phần nội dung của tài liệu.
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()
Đơn giản hoá vấn đề bằng cách viết ngược. Giống như chèn, việc xoá văn bản làm thay đổi chỉ mục của tất cả văn bản "bên dưới" trong phân đoạn. Xin nhắc lại, việc viết ngược có thể giúp đơn giản hoá việc xử lý chỉ mục.
Di chuyển văn bản
Để di chuyển văn bản, bạn xoá văn bản đó ở một vị trí rồi chèn vào nơi khác. Việc xoá nội dung không cung cấp cho bạn một bản sao của nội dung đó (không có khái niệm tương đương về nội dung bảng nhớ tạm) nên trước tiên bạn phải trích xuất nội dung của dải ô để có thể sử dụng trong yêu cầu chèn văn bản.
Chủ đề có liên quan
- Tạo và quản lý tài liệu
- Hợp nhất văn bản vào tài liệu
- Cấu trúc của một tài liệu trên Google Tài liệu