Utiliser des listes

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

Convertir un paragraphe en liste

Une opération de mise en forme de paragraphe courante consiste à convertir les 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 modèle de la puce.

Tous les paragraphes qui chevauchent la plage donnée sont représentés par une liste à 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 onglets de début devant chaque paragraphe.

Vous ne pouvez pas ajuster le niveau d'imbrication d'une puce existante. À la place, vous devez supprimer la puce, définir les tabulations au début du paragraphe, puis la recréer. Pour en savoir plus, consultez la section Supprimer des puces d'une liste.

Vous pouvez également utiliser CreateParagraphBulletsRequest pour modifier le style des puces 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))));

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

Convertir un paragraphe en liste
Figure 1 : Convertir un paragraphe en liste

Supprimer des puces d'une liste

Pour supprimer des 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 toutes les puces qui chevauchent 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 illustre une requête par lot qui supprime des 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))));

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