Tất cả các đoạn văn trùng với phạm vi đã cho đều được đánh dấu bằng dấu đầu dòng. Nếu dải ô được chỉ định trùng lặp với một bảng, thì dấu đầu dòng sẽ được áp dụng trong các ô của bảng. Cấp độ lồng của mỗi đoạn văn được xác định bằng cách đếm các thẻ tab ở đầu mỗi đoạn văn.
Bạn không thể điều chỉnh cấp độ lồng của một dấu đầu dòng hiện có.
Thay vào đó, bạn phải xoá dấu đầu dòng, đặt các dấu tab đầu dòng ở phía trước đoạn văn bản, rồi tạo lại dấu đầu dòng. Để biết thêm thông tin, hãy xem bài viết Xoá dấu đầu dòng khỏi danh sách.
Bạn cũng có thể dùng CreateParagraphBulletsRequest để thay đổi kiểu dấu đầu dòng cho một danh sách hiện có.
Mẫu mã sau đây cho thấy một yêu cầu hàng loạt, trước tiên sẽ chèn văn bản vào đầu tài liệu, sau đó tạo một danh sách từ các đoạn văn trải dài trong 50 ký tự đầu tiên. BulletGlyphPreset sử dụng BULLET_ARROW_DIAMOND_DISC, tức là 3 cấp độ lồng nhau đầu tiên của danh sách có dấu đầu dòng được biểu thị bằng một mũi tên, một hình kim cương và một đĩa.
Phương thức này sẽ xoá tất cả các dấu đầu dòng trùng lặp với phạm vi đã cho, bất kể cấp độ lồng nhau. Để duy trì trực quan cấp độ lồng ghép, khoảng thụt lề sẽ được thêm vào đầu mỗi đoạn tương ứng.
Mẫu mã sau đây cho thấy một yêu cầu hàng loạt xoá dấu đầu dòng khỏi danh sách đoạn văn.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-08-29 UTC."],[],[],null,["# Work with lists\n\nThe Google Docs API supports converting plain paragraphs to bulleted lists and\nremoving bullets from paragraphs.\n\nConvert a paragraph to a list\n-----------------------------\n\nA common paragraph formatting operation is converting paragraphs into a bulleted\nlist.\n\nTo create a list, use the\n[`documents.batchUpdate`](/workspace/docs/api/reference/rest/v1/documents/batchUpdate)\nmethod and supply a\n[`CreateParagraphBulletsRequest`](/workspace/docs/api/reference/rest/v1/documents/request#createparagraphbulletsrequest).\nInclude a [`Range`](/workspace/docs/api/reference/rest/v1/documents#Range) to specify the\naffected cells and a\n[`BulletGlyphPreset`](/workspace/docs/api/reference/rest/v1/documents/request#bulletglyphpreset)\nto set the pattern for the bullet.\n\nAll paragraphs that overlap with the given range are bulleted. If the specified\nrange overlaps with a table, the bullets are applied within the table cells. The\nnesting level of each paragraph is determined by counting leading tabs in front\nof each paragraph.\n\nYou can't adjust the nesting level of an existing bullet.\nInstead, you must delete the bullet, set the leading tabs in front of the\nparagraph, and then create the bullet again. For more information, see [Remove\nbullets from a list](#remove-list).\n\nYou can also use `CreateParagraphBulletsRequest` to change the bullet style for\nan existing list.\n\nThe following code sample shows a batch request that first inserts text at the\nstart of the document, and then it creates a list from the paragraphs spanning\nthe first 50 characters. The `BulletGlyphPreset` uses\n`BULLET_ARROW_DIAMOND_DISC` which means the first three nesting levels of the\nbulleted list are represented by an arrow, a diamond, and a disc. \n\n### Java\n\n```java\nList\u003cRequest\u003e requests = new ArrayList\u003c\u003e();\nrequests.add(new Request().setInsertText(new InsertTextRequest()\n .setText(\"Item One\\n\")\n .setLocation(new Location().setIndex(1).setTabId(TAB_ID))));\n\nrequests.add(new Request().setCreateParagraphBullets(\n new CreateParagraphBulletsRequest()\n .setRange(new Range()\n .setStartIndex(1)\n .setEndIndex(50)\n .setTabId(TAB_ID))\n .setBulletPreset(\"BULLET_ARROW_DIAMOND_DISC\")));\n\nBatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);\nBatchUpdateDocumentResponse response = docsService.documents()\n .batchUpdate(DOCUMENT_ID, body).execute();\n```\n\n### Python\n\n```python\nrequests = [\n {\n 'insertText': {\n 'location': {\n 'index': 1,\n 'tabId': TAB_ID\n },\n 'text': 'Item One\\n',\n }}, {\n 'createParagraphBullets': {\n 'range': {\n 'startIndex': 1,\n 'endIndex': 50,\n 'tabId': TAB_ID\n },\n 'bulletPreset': 'BULLET_ARROW_DIAMOND_DISC',\n }\n }\n]\n\nresult = service.documents().batchUpdate(\n documentId=DOCUMENT_ID, body={'requests': requests}).execute()\n```\n**Figure 1.** Convert a paragraph to a list.\n\nRemove bullets from a list\n--------------------------\n\nTo remove bullets from a paragraph list, use the\n[`documents.batchUpdate`](/workspace/docs/api/reference/rest/v1/documents/batchUpdate)\nmethod and supply a\n[`DeleteParagraphBulletsRequest`](/workspace/docs/api/reference/rest/v1/documents/request#deleteparagraphbulletsrequest).\nInclude a [`Range`](/workspace/docs/api/reference/rest/v1/documents#Range) to specify the\naffected cells.\n\nThe method deletes all bullets that overlap with the given range, regardless of\nnesting level. To visually preserve the nesting level, indentation is added to\nthe start of each corresponding paragraph.\n\nThe following code sample shows a batch request that deletes bullets from a\nparagraph list. \n\n### Java\n\n```java\nList\u003cRequest\u003e requests = new ArrayList\u003c\u003e();\nrequests.add(new Request().setDeleteParagraphBullets(\n new DeleteParagraphBulletsRequest()\n .setRange(new Range()\n .setStartIndex(1)\n .setEndIndex(50)\n .setTabId(TAB_ID))));\n\nBatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);\nBatchUpdateDocumentResponse response = docsService.documents()\n .batchUpdate(DOCUMENT_ID, body).execute();\n```\n\n### Python\n\n```python\nrequests = [\n {\n 'deleteParagraphBullets': {\n 'range': {\n 'startIndex': 1,\n 'endIndex': 50,\n 'tabId': TAB_ID\n },\n }\n }\n]\n\nresult = service.documents().batchUpdate(\n documentId=DOCUMENT_ID, body={'requests': requests}).execute()\n```"]]