Utiliser des listes

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

Convertir un paragraphe en liste

Une opération de mise en forme de paragraphe 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 élément Range pour spécifier les cellules concernées et un élément BulletGlyphPreset pour définir le modèle de la puce.

Tous les paragraphes qui chevauchent la plage donnée apparaissent sous forme de 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 au début de 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 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()

Convertissez un paragraphe en liste.
Figure 1 : Convertissez 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 élément DeleteParagraphBulletsRequest. Incluez un Range pour spécifier les cellules concernées.

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