使用列表

Google 文档 API 支持将纯段落转换为项目符号列表,以及从段落中移除项目符号。

将段落转换为列表

常见的段落格式设置操作是将段落转换为项目符号列表。

如需创建列表,请使用 documents.batchUpdate 方法并提供 CreateParagraphBulletsRequest。添加 Range 以指定受影响的单元格,并添加 BulletGlyphPreset 以设置项目符号的模式。

与指定范围重叠的所有段落都会带有项目符号。如果指定的范围与表格重叠,则项目符号会应用于表格单元格。每个段落的嵌套级别取决于每个段落前面的前导制表符数量。

您无法调整现有项目符号的嵌套级别。 您必须删除项目符号,在段落前面设置前导标签页,然后重新创建项目符号。如需了解详情,请参阅从列表中移除项目符号

您还可以使用 CreateParagraphBulletsRequest 更改现有列表的项目符号样式。

以下代码示例展示了一个批量请求,该请求首先在文档开头插入文本,然后基于跨越前 50 个字符的段落创建一个列表。BulletGlyphPreset 使用 BULLET_ARROW_DIAMOND_DISC,这意味着项目符号列表的前三个嵌套级别由箭头、菱形和圆片表示。

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()