Praca z listami

Interfejs API Dokumentów Google obsługuje konwertowanie zwykłych akapitów na listy punktowane, a także usuwania punktorów z akapitów.

Konwertowanie akapitu na listę

Częstą operacja formatowania akapitu jest konwertowanie akapitów na listy punktowane. z listy.

Aby utworzyć listę, użyj documents.batchUpdate i podaj klucz CreateParagraphBulletsRequest Dołącz Range, aby określić komórek, których dotyczy problem, BulletGlyphPreset aby ustawić wzór punktora.

Wszystkie akapity, które nakładają się na podany zakres, zostaną umieszczone w punktach. Jeśli określony zakres pokrywa się z tabelą, punktory zostaną zastosowane w komórkach tabeli. poziom zagnieżdżenia każdego akapitu jest określany przez zliczanie poprzedzających znaków tabulacji. każdego akapitu.

Nie możesz zmieniać poziomu zagnieżżenia istniejącego punktu. Zamiast tego musisz usunąć punktor, umieścić główne karty przed , a potem jeszcze raz utwórz punktor. Więcej informacji znajdziesz w sekcji Usuwanie na liście.

Za pomocą CreateParagraphBulletsRequest możesz też zmienić styl punktorów w istniejącą listę.

Poniższy przykładowy kod przedstawia żądanie zbiorcze, które najpierw wstawia tekst w polu na początku dokumentu, a następnie tworzy listę z akapitów rozciągających się pierwszych 50 znaków. BulletGlyphPreset używa BULLET_ARROW_DIAMOND_DISC, czyli 3 pierwsze poziomy zagnieżdżenia lista punktowana jest oznaczona strzałką, rombem i dyskiem.

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()
Przekształcanie akapitu w listę.
Rysunek 1. Przekształcanie akapitu w listę.

Usuwanie punktorów z listy

Aby usunąć punktory z listy akapitów, użyj documents.batchUpdate i podaj klucz DeleteParagraphBulletsRequest Dołącz Range, aby określić komórek, których dotyczy problem.

Ta metoda usuwa wszystkie punktory, które nakładają się na dany zakres, niezależnie od na poziomie zagnieżdżenia. Aby wizualnie zachować poziom zagnieżdżenia, do obiektu zostało dodane wcięcie. początku każdego odpowiedniego akapitu.

Poniższy przykładowy kod pokazuje żądanie zbiorcze, które usuwa punktory z listę akapitów.

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