リストを操作する

Google Docs API では、シンプルな段落を箇条書きに変換したり、段落から箇条書きを削除したりすることができます。

段落をリストに変換する

一般的な段落の書式設定オペレーションでは、段落を箇条書きリストに変換します。

リストを作成するには、documents.batchUpdate メソッドを使用して CreateParagraphBulletsRequest を指定します。影響を受けるセルを指定する Range と、箇条書きのパターンを設定する BulletGlyphPreset を含めます。

指定した範囲と重複するすべての段落には箇条書きで表示されます。指定した範囲が表と重複する場合、表のセル内に箇条書きが適用されます。各段落のネストレベルは、各段落の前にある先頭タブを数えることで決定されます。

既存の箇条書きのネスト レベルは調整できません。 代わりに、箇条書きを削除し、段落の前に先頭タブを設定してから、箇条書きを再度作成する必要があります。詳しくは、リストから箇条書き項目を削除するをご覧ください。

CreateParagraphBulletsRequest を使用して、既存のリストの箇条書きスタイルを変更することもできます。

次のコードサンプルは、最初にドキュメントの先頭にテキストを挿入し、その後、最初の 50 文字にわたる段落からリストを作成するバッチ リクエストを示しています。BulletGlyphPresetBULLET_ARROW_DIAMOND_DISC を使用します。つまり、箇条書きリストの最初の 3 つのネストレベルは、矢印、ひし形、円盤で表されます。

Java

      List<Request> requests = new ArrayList<>();
      requests.add(new Request().setInsertText(new InsertTextRequest()
              .setText("Item One\n")
              .setLocation(new Location().setIndex(1))));

      requests.add(new Request().setCreateParagraphBullets(
              new CreateParagraphBulletsRequest()
                      .setRange(new Range()
                              .setStartIndex(1)
                              .setEndIndex(50))
                      .setBulletPreset("BULLET_ARROW_DIAMOND_DISC")));

      BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);
      BatchUpdateDocumentResponse response = docsService.documents()
              .batchUpdate(DOCUMENT_ID, body).execute();

Python

    requests = [
         {
            'insertText': {
                'location': {
                    'index': 1
                },
                'text': 'Item One\n',
            }}, {
            'createParagraphBullets': {
                'range': {
                    'startIndex': 1,
                    'endIndex':  50
                },
                'bulletPreset': 'BULLET_ARROW_DIAMOND_DISC',
            }
        }
    ]

    result = service.documents().batchUpdate(
        documentId=DOCUMENT_ID, body={'requests': requests}).execute()

段落をリストに変換します。
図 1. 段落をリストに変換します。

リストから箇条書き記号を削除する

段落リストから箇条書きを削除するには、documents.batchUpdate メソッドを使用して DeleteParagraphBulletsRequest を指定します。Range を含めて、影響を受けるセルを指定します。

このメソッドでは、ネスト レベルに関係なく、指定された範囲と重複するすべての箇条書きが削除されます。ネストレベルを視覚的に維持するために、対応する各段落の先頭にインデントが追加されます。

次のコードサンプルは、段落リストから箇条書きを削除するバッチ リクエストを示しています。

Java

      List<Request> requests = new ArrayList<>();
      requests.add(new Request().setDeleteParagraphBullets(
              new DeleteParagraphBulletsRequest()
                      .setRange(new Range()
                              .setStartIndex(1)
                              .setEndIndex(50))));

      BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);
      BatchUpdateDocumentResponse response = docsService.documents()
              .batchUpdate(DOCUMENT_ID, body).execute();

Python

    requests = [
         {
            'deleteParagraphBullets': {
                'range': {
                    'startIndex': 1,
                    'endIndex':  50
                },
            }
        }
    ]

    result = service.documents().batchUpdate(
        documentId=DOCUMENT_ID, body={'requests': requests}).execute()