Trabajo con listas

La API de Documentos de Google admite la conversión de párrafos sin formato en listas con viñetas y eliminar las viñetas de los párrafos.

Cómo convertir un párrafo en una lista

Una operación común de formateo de párrafos es convertirlos en viñetas lista.

Para crear una lista, usa el documents.batchUpdate y proporciona un CreateParagraphBulletsRequest Incluye un Range para especificar la células afectadas y un BulletGlyphPreset para establecer el patrón de la viñeta.

Todos los párrafos que se superponen con el rango dado aparecen como viñetas. Si el estado especificado rango se superpone con una tabla, las viñetas se aplican dentro de las celdas de la tabla. El El nivel de anidamiento de cada párrafo se determina contando las pestañas principales al frente de cada párrafo.

No puedes ajustar el nivel de anidamiento de una viñeta existente. En su lugar, debes eliminar la viñeta, colocar las pestañas iniciales delante de los y vuelve a crear la viñeta. Para obtener más información, consulta Cómo quitar un elemento viñetas de una lista.

También puedes usar CreateParagraphBulletsRequest para cambiar el estilo de la viñeta. una lista existente.

En la siguiente muestra de código, se observa una solicitud por lotes que primero inserta texto en el inicio del documento y, a continuación, crea una lista a partir de los párrafos que abarcan los primeros 50 caracteres. BulletGlyphPreset usa BULLET_ARROW_DIAMOND_DISC, que se refiere a los tres primeros niveles de anidamiento del lista con viñetas están representadas por una flecha, un diamante y un disco.

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

Convierte un párrafo en una lista.
Figura 1. Convierte un párrafo en una lista.

Cómo quitar viñetas de una lista

Para eliminar viñetas de una lista de párrafos, usa la documents.batchUpdate y proporciona un DeleteParagraphBulletsRequest Incluye un Range para especificar la las células afectadas.

El método borra todas las viñetas que se superponen con el rango dado, independientemente de nivel de anidación. Para preservar visualmente el nivel de anidación, se agrega sangría al al comienzo de cada párrafo correspondiente.

En la siguiente muestra de código aparece una solicitud por lotes que borra viñetas de un lista de párrafos.

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