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.

¿Copiar / pegar la selección de Google Sheets en Google Docs a través de la API de Docs y Sheets?

Quiero transferir una selección de un documento de hojas de cálculo de Google a un documento de Google Docs a través de mi servicio de backend de node.js. Esperaba que la API de Google Docs admitiera esta función, pero no puedo encontrar los pasos exactos necesarios.

Para visualizar lo que quiero hacer, he tomado una captura de pantalla simple en la interfaz de usuario web que muestra exactamente lo que debe suceder, pero no manualmente, sino automatizado en mi servicio de backend: https://i.stack.imgur.com/Z4OVE.gif

Entiendo que las aplicaciones web de Google casi utilizan la misma API que se expone a los desarrolladores, así que esperaba que alguien aquí pudiera decirme qué solicitudes exactas se hacen para que esto suceda.

Esta pregunta es algo similar a: https://stackoverflow.com/questions/44036428/copy-selection-from-google-sheets-into-a-google-doc-using-rest-api pero tiene más de 4 años y no ha recibido mucha atención, y muchas cosas han sucedido en las API desde entonces. Además, no estoy interesado en usar scripts de aplicaciones, como sugiere la respuesta.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para transferir una selección de un documento de Google Sheets a un documento de Google Docs a través de un servicio de backend de node.js, se puede utilizar la API de Google Sheets para recuperar los datos y la API de Google Docs para crear un nuevo documento o actualizar uno existente.

    Estos son los pasos que se pueden seguir:

    1. Autenticar la aplicación con la API de Google Sheets y la API de Google Docs para obtener las credenciales de autenticación necesarias.
    2. Utilizar la API de Google Sheets para recuperar los datos que se desea transferir desde el documento de Google Sheets. Se puede utilizar el método spreadsheets.values.get para recuperar los valores de un rango de celdas.

    3. Utilizar la API de Google Docs para crear un nuevo documento o actualizar uno existente, dependiendo de las necesidades. Se puede utilizar el método documents.create para crear un nuevo documento y el método documents.batchUpdate para actualizar un documento existente.

    4. Utilizar la API de Google Docs para insertar los datos recuperados en el nuevo o existente documento. Se pueden utilizar los métodos requests.insertText o requests.updateTextStyle para insertar o formatear el texto.

    5. Guardar y cerrar el documento.

    Aquí hay un código de ejemplo que demuestra cómo transferir una selección de un documento de Google Sheets a un documento de Google Docs utilizando la API de Google Sheets y la API de Google Docs en Node.js:

    const {google} = require('googleapis');
    const sheets = google.sheets('v4');
    const docs = google.docs('v1');
    
    // Autenticar con la API de Google Sheets y la API de Google Docs.
    const auth = await google.auth.getClient({
      scopes: ['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/documents'],
    });
    
    // Obtener los valores del rango seleccionado del documento de Google Sheets.
    const range = 'Sheet1!A1:B2';
    const response = await sheets.spreadsheets.values.get({
      spreadsheetId: '<spreadsheet-id>',
      range: range,
      auth: auth,
    });
    
    // Crear un nuevo documento de Google Docs.
    const title = 'Mi nuevo documento';
    const document = await docs.documents.create({
      title: title,
      auth: auth,
    });
    
    // Insertar los datos recuperados en el nuevo documento.
    const text = response.data.values.flat().join('\n');
    const requests = [
      {
        insertText: {
          text: text,
          endOfSegmentLocation: {},
        },
      },
    ];
    const request = {
      requests: requests,
    };
    await docs.documents.batchUpdate({
      documentId: document.data.documentId,
      resource: request,
      auth: auth,
    });
    
    console.log(`Documento creado: ${title}`);
    

    El código anterior recupera los valores del rango seleccionado “A1:B2” de un documento de Google Sheets, crea un nuevo documento de Google Docs e inserta los datos recuperados en el nuevo documento. Tenga en cuenta que deberá reemplazar “” con el ID del documento de Google Sheets del que desea recuperar los datos.

Comments are closed.