Xử lý các danh sách

API Google Tài liệu hỗ trợ chuyển đổi đoạn văn bản thuần tuý 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 vă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 một CreateParagraphBulletsRequest. Thê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 trước đều được đánh dấu đầu dòng. Nếu dải ô được 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 đó. Mức độ lồng ghép của mỗi đoạn được xác định bằng cách đếm các thẻ ở đầu phía trước mỗi đoạn.

Bạn không thể điều chỉnh mức độ lồng 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 phía trước đoạn văn, 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 một danh sách hiện có.

Mã mẫu sau đây cho thấy một yêu cầu hàng loạt trong đó trước tiên 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 kéo dài 50 ký tự đầu tiên. BulletGlyphPreset sử dụng BULLET_ARROW_DIAMOND_DISC, nghĩa 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 thoi và một chiếc đĩ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 một DeleteParagraphBulletsRequest. Thêm Range để chỉ định các ô bị ảnh hưởng.

Phương thức này sẽ xoá tất cả các dấu đầu dòng chồng chéo với phạm vi đã cho, bất kể mức độ lồng nhau. Để giữ nguyên mức độ lồng ghép một cách trực quan, hệ thống sẽ thêm thụt lề vào đầu mỗi đoạn tương ứng.

Mã mẫu sau đây cho thấy một yêu cầu hàng loạt 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()