Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

210
Vistas
Necesito 2 botones diferentes, para crear una nueva carpeta y crear un nuevo PDF en esa carpeta

He estado luchando para crear informes semanales específicos del sistema de existencias. Entonces, para brindarle una descripción general básica, tengo una hoja maestra desde la que quiero generar informes, activada por un botón de la interfaz de usuario. Sin embargo, el primer paso es crear una carpeta para esa semana para colocar los PDF. Puedo crear la carpeta y puedo generar el PDF en mi carpeta raíz de Google Drive, pero parece que no puedo mover el PDF a ningún lado después de eso. . Intenté usar .moveTo() pero no puedo hacer que funcione. ¿Alguién tiene algún consejo?

 function onOpen(e) { SpreadsheetApp.getUi() .createMenu('Physical') .addItem('New folder','newFolder') .addItem('Generate PDF','generatePDF') .addToUi(); } function newFolder(){ var today = new Date(); var week = Utilities.formatDate(today, "Europe/Amsterdam", "w"); //need to find a way to minus 1 for the current week var spreadsheetId = SpreadsheetApp.getActiveSpreadsheet().getId(); //time to create a new folder var spreadsheetFile = DriveApp.getFileById(spreadsheetId); var folderId = spreadsheetFile.getParents().next().getId(); var parFolder = DriveApp.getFolderById(folderId) var destFolder = parFolder.createFolder('Week ' + week); } function generatePDF(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var speadsheetFile = ss.getId(); var file = DriveApp.getFileById(speadsheetFile); var folderId = file.getParents().next().getId(); var pdf = DriveApp.createFile(ss.getBlob()) pdf.moveTo(folderId); //find way to move file either to destination folder or to parent folder }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Descripción

Este tipo de situaciones son difíciles de probar porque las circunstancias son específicas del interrogador OP. Sin embargo, creo que esto funcionará.

Con las propiedades del script de PropertyService, almacene el identificador de carpeta recién creado y luego obtenga ese identificador de las propiedades del script para mover el archivo.

Una nota de precaución, no revisé el caso si la semana cambia y no se crea una nueva carpeta, el pdf irá a la carpeta de la semana anterior.

Con respecto a la creación de un botón y la vinculación de una función al botón, consulte este artículo Botones en Hojas de cálculo de Google

Guion

 function newFolder(){ var today = new Date(); var week = Utilities.formatDate(today, "Europe/Amsterdam", "w"); //need to find a way to minus 1 for the current week var spreadsheetId = SpreadsheetApp.getActiveSpreadsheet().getId(); //time to create a new folder var spreadsheetFile = DriveApp.getFileById(spreadsheetId); var folderId = spreadsheetFile.getParents().next().getId(); var parFolder = DriveApp.getFolderById(folderId); var folderName = 'Week '+week; // check if folder already exists var subFolders = parFolder.getFoldersByName(folderName); var destFolder = null; if( subFolders.hasNext() ) { SpreadsheetApp.getUi().alert("Folder "+folderName+" already exists"); destFolder = subFolders.next(); } else { destFolder = parFolder.createFolder(folderName); } // store folder id to Script Properties var props = PropertiesService.getScriptProperties(); props.setProperty("foldeId",destFolder.getId()); } function generatePDF(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); // get folder id from Script Properties var folderId = PropertiesService.getScriptProperties("folderId"); if( !folderId ) { SpreadsheetApp.getUi().alert("Property folderId not found"); return; } var pdf = DriveApp.createFile(ss.getBlob()) pdf.moveTo(folderId); //find way to move file either to destination folder or to parent folder }

Referencia

  • Aplicación de hoja de cálculo.getUi().alert()
  • PropiedadesServicio
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda