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.

Crear un nuevo documento de Word que contenga el contenido seleccionado del documento de Google.

Puedo crear un documento de Word con el contenido completo del documento de Google (consultar enlace).
Necesito crear un nuevo documento de Word en el drive con el contenido seleccionado (solo la selección) de un documento de Google. ¿Existe alguna forma de lograrlo?
Creo que si puedo obtener la información de blob para la selección del contenido del documento de Google, puedo lograrlo. He buscado en la web pero no he encontrado información de apoyo.

Código para convertir el documento de Google en un documento de Word:

function convertirDocumentoGoogleADocumentoWord(docId) {
  if (docId == null) throw new Error("No hay ID de archivo.");
  var archivo = DriveApp.getFileById(docId);
  var tipoMIME = archivo.getMimeType();
  var formato = "";
  var extension = "";
  switch (tipoMIME) {
    case "application/vnd.google-apps.document":
      formato = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
      extension = ".docx";
      break;
    default:
      return null;
  }

  var url = "https://www.googleapis.com/drive/v3/files/" + docId + "/export?mimeType=" + formato;
  var blob = UrlFetchApp.fetch(url, {
    method: "get",
    headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
    muteHttpExceptions: true
  }).getBlob();
  var nombreArchivo = archivo.getName();

  var id = DriveApp.createFile(blob).setName(~nombreArchivo.indexOf(extension) ? nombreArchivo : nombreArchivo + extension).getId();
  return id;
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución para seleccionar contenido de un documento de Google y crear un documento de Word en Google Drive

    Para crear un nuevo documento de Word en el drive con el contenido seleccionado de un documento de Google, primero debemos obtener el contenido seleccionado del documento de Google. Desafortunadamente, no hay un método directo para obtener el blog para la selección del contenido del documento de Google.

    Sin embargo, podemos lograr esto siguiendo los siguientes pasos:

    1. Obtener el rango del contenido seleccionado en el documento de Google.
    2. Crear un nuevo archivo de Documento en Google Drive.
    3. Copiar el contenido seleccionado del documento de Google al archivo de Documento recién creado.
    4. Convertir el archivo de Documento al formato de Word.
    5. Eliminar el archivo de Documento.

    Aquí hay un código de ejemplo que te permitirá seleccionar contenido de un documento de Google y crear un nuevo documento de Word en Google Drive:

    function createWordDocWithSelectedContent() {
      var documentFileId = "aquí_id_del_documento_de_google";
      var selection = DocumentApp.getActiveDocument().getSelection();
      var selectedRange = selection.getRangeElements();
      var content = "";
    
      for (var i = 0; i < selectedRange.length; i++) {
        var rangeElement = selectedRange[i];
        var element = rangeElement.getElement();
        var elementText = element.editAsText();
    
        content += elementText.getText();
    
        if (i < selectedRange.length - 1) {
          content += "\n"; // Agrega un salto de línea entre el contenido seleccionado.
        }
      }
    
      if (content === "") {
        throw new Error("No se seleccionó ningún contenido.");
      }
    
      // Crea un nuevo Documento de Google e inserta el contenido seleccionado.
      var newDocFile = DocumentApp.create("Contenido Seleccionado").getId();
      var newDoc = DocumentApp.openById(newDocFile);
      newDoc.getBody().setText(content);
    
      // Convierte el Documento de Google al formato de Word.
      var newDocFileBlob = DriveApp.getFileById(newDocFile).getAs('application/vnd.openxmlformats-officedocument.wordprocessingml.document');
      var newFileName = "Contenido Seleccionado.docx";
    
      // Crea un nuevo archivo en Google Drive y guarda el documento de Word convertido.
      var newFile = DriveApp.createFile(newDocFileBlob).setName(newFileName);
    
      // Elimina el archivo temporal de Documento de Google.
      DriveApp.getFileById(newDocFile).setTrashed(true);
    
      return newFile.getUrl(); // Devuelve la URL del documento de Word recién creado en Google Drive.
    }
    

    Asegúrate de reemplazar "aquí_id_del_documento_de_google" con el ID del documento de Google del que deseas seleccionar el contenido.

    Este código creará un nuevo documento de Word en Google Drive con el contenido seleccionado del documento de Google. La función lanzará un error si no se selecciona ningún contenido en el documento de Google.

Comments are closed.