Google Docs API 可讓您在文件中插入或刪除文字。移動文字
需要兩項作業,並在前面加上內容的 get
。
你可以在文件中插入或刪除文字 分頁的區隔 (內文、頁首、頁尾或註腳)。
插入文字
如要在文件中插入文字,請使用
documents.batchUpdate
敬上
方法,並加入
InsertTextRequest
。
以及做為酬載的文字和位置
以下程式碼範例顯示如何在 會在文件內文中指定索引位置。本範例使用三個 目標偏移量 (25、50 和 75) 並在每個路徑插入一個 10 個字元的字串 或 HTTP/HTTPS 位置
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,則實際插入索引 是:
- 第一個插入項目會在偏移量 25 時加入 10 個字元。
- 第二次插入時,會在 50+10=60 的偏移值加入 10 個字元。
- 第三個插入作業會在 75+10+10=95 偏移時加入 10 個字元。
刪除文字
如要從文件中刪除文字,請先建構
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()
往回寫出簡化案件。和插入作業一樣,刪除 文字改變了所有「 below」文字的索引區隔。再次撰寫 反轉可以簡化索引的處理。
移動文字
如要移動文字,請先刪除其中一個位置的文字,然後再將文字插入其他位置。 刪除內容並不會為您建立副本 (並沒有相等的概念 剪貼簿),因此您必須先擷取範圍的內容,才能使用 插入文字片段