Xử lý các danh sách

API Google Tài liệu hỗ trợ chuyển đổi các đoạn văn đơn giản thành danh sách có dấu đầu dòng và xoá dấu đầu dòng khỏi đoạn.

Chuyển đổi một đoạn thành danh sách

Một thao tác định dạng đoạn phổ biến là chuyển đổi đoạn thành danh sách có dấu đầu dòng.

Để tạo danh sách, hãy sử dụng phương thức documents.batchUpdate và cung cấp CreateParagraphBulletsRequest. Bao gồm Range để chỉ định các ô bị ảnh hưởng và BulletGlyphPreset để đặt mẫu cho dấu đầu dòng.

Tất cả các đoạn chồng chéo với dải ô đã cho đều được đánh dấu đầu dòng. Nếu dải ô đã chỉ định chồng chéo với một bảng, thì các dấu đầu dòng sẽ được áp dụng trong các ô của bảng. Cấp độ lồng của từng đoạn được xác định bằng cách đếm các thẻ ở đầu mỗi đoạn.

Bạn không thể điều chỉnh mức độ lồng nhau của dấu đầu dòng hiện có. Thay vào đó, bạn phải xoá dấu đầu dòng, đặt các thẻ ở đầu trước đoạn và sau đó tạo lại dấu đầu dòng. Để biết thêm thông tin, hãy xem phần Xoá dấu đầu dòng khỏi danh sách.

Bạn cũng có thể sử dụng CreateParagraphBulletsRequest để thay đổi kiểu dấu đầu dòng cho danh sách hiện có.

Mã mẫu 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 ở phần đầu tài liệu, sau đó tạo danh sách từ các đoạn văn bản kéo dài 50 ký tự đầu tiên. BulletGlyphPreset sử dụng BULLET_ARROW_DIAMOND_DISC, có nghĩa là ba cấp độ lồng đầu tiên của danh sách được đánh dấu đầu dòng được biểu thị bằng một mũi tên, một hình thoi và một đĩa.

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

Chuyển đổi một đoạn thành danh sách.
Hình 1. Chuyển đổi một đoạn thành danh sách.

Xoá dấu đầu dòng khỏi danh sách

Để xoá dấu đầu dòng khỏi danh sách đoạn, hãy sử dụng phương thức documents.batchUpdate và cung cấp DeleteParagraphBulletsRequest. Thêm Range để chỉ định các ô bị ảnh hưởng.

Phương thức này sẽ xoá tất cả dấu đầu dòng trùng lặp với dải ô đã cho, bất kể cấp độ lồng ghép. Để duy trì mức độ lồng ghép về mặt hình ảnh, tính năng thụt lề được thêm vào đầu mỗi đoạn tương ứng.

Mã mẫu sau đây cho thấy một yêu cầu theo lô giúp xoá các dấu đầu dòng khỏi danh sách đoạn.

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