Interfejs Google Docs API umożliwia tworzenie list w nowych dokumentach, przekształcanie istniejących zwykłych akapitów w listy punktowane i usuwanie punktorów z akapitów.
Tworzenie listy numerowanej w nowym dokumencie
Interfejs Docs API umożliwia utworzenie listy numerowanej w nowym dokumencie przez wstawienie tekstu, a następnie zastosowanie do niego stylu listy w ramach jednego żądania wsadowego.
Aby utworzyć listę numerowaną w nowym dokumencie:
Aby utworzyć dokument, użyj metody
documents.create.Użyj metody
documents.batchUpdatei podajInsertTextRequest, aby dodać treść do dokumentu. Użyj znaków nowego wiersza (\n), aby rozdzielić elementy listy.W tej samej aktualizacji zbiorczej uwzględnij
CreateParagraphBulletsRequest,Range, aby określić zakres tekstu, orazBulletGlyphPreset, aby ustawić wzorzec numerowania.
Poniższy przykładowy kod pokazuje, jak utworzyć dokument, a następnie wstawić 3 elementy jako listę numerowaną. Do formatowania listy używa się znaku BulletGlyphPresetNUMBERED_DECIMAL_ALPHA_ROMAN. Oznacza to, że pierwsze 3 poziomy zagnieżdżenia listy numerowanej są reprezentowane przez liczbę dziesiętną, małą literę i małą cyfrę rzymską.
Java
Document doc = new Document().setTitle("New List Document"); doc = docsService.documents().create(doc).execute(); String documentId = doc.getDocumentId(); List<Request> requests = new ArrayList<>(); requests.add(new Request().setInsertText(new InsertTextRequest() .setText("Item 1\nItem 2\nItem 3\n") .setLocation(new Location().setIndex(1).setTabId(TAB_ID)))); requests.add(new Request().setCreateParagraphBullets( new CreateParagraphBulletsRequest() .setRange(new Range() .setStartIndex(1) .setEndIndex(22) .setTabId(TAB_ID)) .setBulletPreset("NUMBERED_DECIMAL_ALPHA_ROMAN"))); BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests); docsService.documents().batchUpdate(documentId, body).execute(); System.out.println("Created document with ID: " + documentId);
Python
title = 'New List Document' body = {'title': title} doc = service.documents().create(body=body).execute() document_id = doc.get('documentId') requests = [ { 'insertText': { 'location': { 'index': 1, 'tabId': TAB_ID }, 'text': 'Item 1\nItem 2\nItem 3\n' } }, { 'createParagraphBullets': { 'range': { 'startIndex': 1, 'endIndex': 22, 'tabId': TAB_ID }, 'bulletPreset': 'NUMBERED_DECIMAL_ALPHA_ROMAN' } } ] result = service.documents().batchUpdate( documentId=document_id, body={'requests': requests}).execute() print(f"Created document with ID: {document_id}")
Zastąp TAB_ID identyfikatorem karty, która zawiera treść listy.
Przekształcanie akapitu w listę
Częstą operacją formatowania akapitu jest przekształcanie istniejących akapitów w listę punktowaną.
Aby utworzyć listę, użyj metody documents.batchUpdate i podaj CreateParagraphBulletsRequest.
Dodaj Range, aby określić tekst, którego dotyczy problem, oraz BulletGlyphPreset, aby ustawić wzorzec punktorów.
Wszystkie akapity, które pokrywają się z podanym zakresem, są oznaczone punktorem. Jeśli określony zakres nakłada się na tabelę, punktor zostanie zastosowany w komórkach tabeli. Poziom zagnieżdżenia każdego akapitu jest określany przez zliczenie tabulatorów na początku każdego akapitu.
Nie możesz dostosować poziomu zagnieżdżenia istniejącego punktu. Zamiast tego musisz usunąć punktor, ustawić tabulatory przed akapitem, a następnie ponownie utworzyć punktor. Więcej informacji znajdziesz w artykule Usuwanie punktorów z listy.
Możesz też użyć CreateParagraphBulletsRequest, aby zmienić styl punktorów na istniejącej liście.
Poniższy przykładowy kod pokazuje żądanie wsadowe, które najpierw wstawia tekst na początku dokumentu, a następnie tworzy listę z akapitów obejmujących pierwsze 50 znaków. BulletGlyphPreset używa BULLET_ARROW_DIAMOND_DISC, co oznacza, że pierwsze 3 poziomy zagnieżdżenia listy punktowanej są reprezentowane przez strzałkę, romb i dysk.
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()
Zastąp TAB_ID identyfikatorem karty zawierającej treść listy lub pomiń ten parametr, aby domyślnie użyć pierwszej karty w dokumencie.
Usuwanie punktorów z listy
Aby usunąć punktor z listy akapitów, użyj metody
documents.batchUpdate
i podaj
DeleteParagraphBulletsRequest.
Dodaj Range, aby określić tekst, którego dotyczy zmiana.
Metoda usuwa wszystkie punktorów, które nakładają się na podany zakres, niezależnie od poziomu zagnieżdżenia. Aby wizualnie zachować poziom zagnieżdżenia, na początku każdego odpowiedniego akapitu dodawane jest wcięcie.
Poniższy przykładowy kod pokazuje żądanie wsadowe, które usuwa punktor z listy 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()
Zastąp TAB_ID identyfikatorem karty zawierającej treść listy lub pomiń ten parametr, aby domyślnie użyć pierwszej karty w dokumencie.