es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Eliminando fila de una tabla en Google Docs.

Estoy intentando implementar código en https://developers.google.com/docs/api/how-tos/tables#python_1

Aquí se muestra mi código completo:

from pygdrive3 import service
requests = [{
        'insertText': {
          'location': {
            'index': 5
          },
          'text': 'Hola'
      }
    },
    {
      'deleteTableRow': {
          'tableCellLocation': {
              'tableStartLocation': {
                      'index': 2
              },
              'rowIndex': 1,
              'columnIndex': 1
          },
          'insertBelow': 'true'
      }
    }
  ]
result = service.documents().batchUpdate(documentId= 'DOC_ID', body={'requests': requests}).execute() 

Me gustaría eliminar las últimas 3 filas en la segunda tabla, por ejemplo.

El error con el que me encuentro es: excepción ocurrida: AttributeError
módulo ‘pygdrive3.service’ no tiene el atributo ‘documents’

Teniendo en cuenta que he completado la guía rápida de Python en los desarrolladores de Google, por lo que tengo todas las bibliotecas necesarias.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el error que estás encontrando se debe al hecho de que la biblioteca “pygdrive3” que estás utilizando no tiene un atributo llamado “documents”, el cual se necesita para el código que estás intentando implementar en la API de Google Docs.

    Para eliminar las últimas tres filas de la segunda tabla de un archivo de Google Docs utilizando la API de Google Docs, puedes usar el siguiente fragmento de código:

    from google.oauth2.service_account import Credentials
    from googleapiclient.discovery import build
    
    # Configuración de las credenciales
    SCOPES = ['https://www.googleapis.com/auth/documents']
    creds = Credentials.from_service_account_file('credentials.json', scopes=SCOPES)
    
    # Creación del cliente de la API de Docs
    docs_service = build('docs', 'v1', credentials=creds)
    
    # Definición de la ubicación de la celda de la tabla
    table_cell_location = {
        'tableStartLocation': {
            'index': 0
        },
        'columnIndex': 1,
        'rowIndex': 1
    }
    
    # Definición del rango de la tabla
    table_range = {
        'tableCellLocation': table_cell_location,
        'rowSpan': 3
    }
    
    # Definición de la solicitud de eliminación de columna de la tabla
    delete_request = {
        'deleteContentRange': {
            'range': {
                'startIndex': 0,
                'endIndex': 0
            },
            'tableRange': table_range
        }
    }
    
    # Actualización por lotes del documento
    result = docs_service.documents().batchUpdate(
        documentId='DOCUMENT_ID',
        body={'requests': [delete_request]}
    ).execute()
    

    En este fragmento de código, utilizamos la API de Google Docs para eliminar el contenido de las filas de tabla especificadas utilizando la solicitud deleteContentRange. Pasamos el rango de la tabla a eliminar como una tableCellLocation y rowSpan en la variable table_range. Luego, definimos la delete_request que especifica los parámetros de la solicitud deleteContentRange, incluyendo el rango de la tabla. Finalmente, ejecutamos la solicitud batchUpdate y pasamos la delete_request dentro de una lista para eliminar las filas de tabla especificadas.

    Ten en cuenta que debes reemplazar DOCUMENT_ID con el ID real del archivo de Google Docs que estás intentando modificar. Además, asegúrate de instalar las dependencias necesarias, incluyendo el paquete google-api-python-client.

Comments are closed.