Google Docs API を使用すると、ドキュメントにテキストを挿入したり、テキストを削除したりできます。テキストを移動しています
両方のオペレーションが関与し、その前にコンテンツの get
が付加されます。
どのドキュメントにもテキストを挿入したり削除したりできます タブのセグメント(本文、ヘッダー、フッター、脚注)。
テキストを挿入
ドキュメントにテキストを挿入するには、
documents.batchUpdate
メソッドに指定し、
InsertTextRequest
テキストと location をペイロードとして返します。
次のコードサンプルは、一連のテキスト文字列を ドキュメントの本文内の特定のインデックス位置に インデックスを作成しますこの例では 3 つの ターゲット オフセット(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 の元のターゲット オフセットで、実際の挿入インデックスが 次のとおりです。
- 最初の挿入では、オフセット 25 に 10 文字が追加されます。
- 2 回目の挿入では、オフセット 50+10=60 で 10 文字を追加します。
- 3 番目の挿入では、オフセット 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()
逆方向に書き込むことで問題を単純化する。挿入と同様に text はすべてのテキストのインデックスを変更します。セグメントに属します繰り返しますが、 インデックスの処理を簡素化できます。
テキストを移動
テキストを移動するには、1 つの場所で削除してから別の場所に挿入します。 コンテンツを削除しても、コンテンツのコピーは作成されません( その範囲の内容を抽出して使用する必要があります。 指定するようにします。