Saltar al contenido

Cómo crear una hoja de cálculo en una carpeta en particular a través de App Script

Solución:

Como lo sugirió @Joshua, es posible crear una hoja de cálculo (en una carpeta específica) con el servicio Advanced Drive:

var name="your-spreadsheet-name"
var folderId = 'your-folder-id'
var resource = {
  title: name,
  mimeType: MimeType.GOOGLE_SHEETS,
  parents: [{ id: folderId }]
}
var fileJson = Drive.Files.insert(resource)
var fileId = fileJson.id

¡No es necesario mover archivos con este método!

Como ya no puedes crear Documentos de Google (Documentos o Hojas de cálculo) usando DriveApp, ni usar addToFolder porque DocList es obsoleto. Solo hay una forma de crear o “mover” Google Docs o Google SpreadSheets …

  //"Move" file to folder-------------------------------//
  var fileID = '12123123213321'
  var folderID = '21321312312'
  var file = DriveApp.getFileById(fileID).getName()
  var folder = DriveApp.getFolderById(folderID)
  var newFile = file.makeCopy(file, folder)

  //Remove file from root folder--------------------------------//
  DriveApp.getFileById(fileID).setTrashed(true)

Como puedes ver esto NO mueve el archivo, hace una copia con el mismo nombre en la carpeta que quieras y luego mueve el archivo original a la papelera. Estoy bastante seguro de que no hay otra forma de hacer esto.

La otra respuesta es un poco corta (y no muy explícita). Si bien su enfoque es lógico y debería funcionar si reemplaza

file.removeFromFolder(file.getParents()[0]); 

con

file.removeFromFolder(DocsList.getRootFolder());

hay una mejor manera de hacer el mismo trabajo usando la nueva aplicación Drive y la clase Folder, Folder tiene un método para crear un archivo y puede especificar el tipo de archivo usando la enumeración mimeType.

El código es así:

function myFunction() {
  var folders = DriveApp.getFoldersByName('YOUR FOLDER NAME'); // replace by the right folder name, assuming there is only one folder with this name
  while (folders.hasNext()) {
   var folder = folders.next();
  }
  folder.createFile('new Spreadsheet', '', MimeType.GOOGLE_SHEETS); // this creates the spreadsheet directly in the chosen folder
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *