Utiliser des listes

L'API Google Docs permet de convertir des paragraphes simples en listes à puces et de supprimer les puces des paragraphes.

Convertir un paragraphe en liste

Une opération de mise en forme courante consiste à convertir des paragraphes en liste à puces.

Pour créer une liste, utilisez la méthode documents.batchUpdate et fournissez un CreateParagraphBulletsRequest. Incluez un Range pour spécifier les cellules concernées et un BulletGlyphPreset pour définir le format du point.

Tous les paragraphes qui chevauchent la plage donnée sont mis en forme avec des puces. Si la plage spécifiée chevauche un tableau, les puces sont appliquées dans les cellules du tableau. Le niveau d'imbrication de chaque paragraphe est déterminé en comptant les tabulations avant chaque paragraphe.

Vous ne pouvez pas ajuster le niveau d'imbrication d'une puce existante. Vous devez plutôt supprimer la puce, définir les tabulations avant le paragraphe, puis recréer la puce. Pour en savoir plus, consultez Supprimer des puces d'une liste.

Vous pouvez également utiliser CreateParagraphBulletsRequest pour modifier le style de puce d'une liste existante.

L'exemple de code suivant montre une requête par lot qui insère d'abord du texte au début du document, puis crée une liste à partir des paragraphes couvrant les 50 premiers caractères. BulletGlyphPreset utilise BULLET_ARROW_DIAMOND_DISC, ce qui signifie que les trois premiers niveaux d'imbrication de la liste à puces sont représentés par une flèche, un losange et un disque.

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

Convertissez un paragraphe en liste.
Figure 1. Convertissez un paragraphe en liste.

Supprimer les puces d'une liste

Pour supprimer les puces d'une liste de paragraphes, utilisez la méthode documents.batchUpdate et fournissez un DeleteParagraphBulletsRequest. Incluez un Range pour spécifier les cellules concernées.

La méthode supprime tous les puces qui se chevauchent avec la plage donnée, quel que soit le niveau d'imbrication. Pour préserver visuellement le niveau d'imbrication, un retrait est ajouté au début de chaque paragraphe correspondant.

L'exemple de code suivant montre une requête par lot qui supprime les puces d'une liste de paragraphes.

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