Xử lý các danh sách

API Google Tài liệu hỗ trợ chuyển đổi các đ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 các đoạn văn bả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 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 văn trùng lặp với phạm vi đã cho đề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 đó. Cấp độ lồng của mỗi đoạn văn được xác định bằng cách đếm các thẻ đầu dòng ở đầ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 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 bài viết 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à ba cấp độ lồng nhau đầu tiên của danh sách được biểu thị bằng mũi tên, hình kim cương và đĩa.

Java

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

requests.add(new Request().setCreateParagraphBullets(
        new CreateParagraphBulletsRequest()
                .setRange(new Range()
                        .setStartIndex(1)
                        .setEndIndex(50)
                        .setTabId(TAB_ID))
                .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,
                'tabId': TAB_ID
            },
            'text': 'Item One\n',
        }}, {
        'createParagraphBullets': {
            'range': {
                'startIndex': 1,
                'endIndex':  50,
                'tabId': TAB_ID
            },
            'bulletPreset': 'BULLET_ARROW_DIAMOND_DISC',
        }
    }
]

result = service.documents().batchUpdate(
    documentId=DOCUMENT_ID, body={'requests': requests}).execute()
Chuyển đổi một đoạn văn bản thành danh sách.
Hình 1. Chuyển đổi một đoạn văn bả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 văn bả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 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ì cấp độ lồng ghép một cách trực quan, dấu thụt lề được thêm vào đầu mỗi đoạn văn tương ứng.

Mã mẫu 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.

Java

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

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

Python

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

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