C'est donc le code que j'ai pour l'instant.
function copyfile() {
var ss = SpreadsheetApp.getActive();
var activeSheet = ss.getSheetByName("sheet_Patients");
var activeSheetFM = ss.getSheetByName("_FolderMaker_");
var lastRow = activeSheet.getLastRow();
var data = activeSheet.getRange(lastRow,3,1,1).getValues();
var secondData = activeSheet.getRange(lastRow,4,1,1).getValues();
var folder_Name = [data+ ", " +secondData];
var id = DriveApp.getFoldersByName(folder_Name);
var finalId = activeSheetFM.getRange(2,4,1,1).setValue(id);
//var file = DriveApp.getFileById("1g25_24OTv_t5Qav2Q1hwEM_YBiPSaWWb");
//var source_folder = DriveApp.getFolderById("1pqh74miSSy9WDSD3kpi02kkI6XDuXiuU");
//var dest_folder = DriveApp.getFoldersByName(finalId);
//
//var file2 = file.makeCopy('BACKUP ' + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyy-MM-dd') + '.' + file.getName());
//dest_folder.addFile(file2);
//source_folder.removeFile(file2);
}
Je voulais donc obtenir le nom des dossiers à partir de la feuille de calcul en utilisant
var data = activeSheet.getRange(lastRow,3,1,1).getValues();
var secondData = activeSheet.getRange(lastRow,4,1,1).getValues();
var folder_Name = [data+ ", " +secondData];
puis en le combinant dans un tableau à utiliser sur
var id = DriveApp.getFoldersByName(folder_Name);
et espérait obtenir l'ID de dossier de cette façon en redéfinissant les valeurs sur une feuille séparée
var finalId = activeSheetFM.getRange(2,4,1,1).setValue(id);
mais il retourne comme "FolderIterator". Je ne suis même pas sûr que cette méthode soit viable car je suis assez nouveau dans le codage.
Le premier problème dans votre code est que vous souhaitez obtenir les valeurs de cellules uniques :
var data = activeSheet.getRange(lastRow,3,1,1).getValues();
var secondData = activeSheet.getRange(lastRow,4,1,1).getValues();
mais vous utilisez getValues
qui renvoie un tableau 2D . Par conséquent, vous devez remplacer getValues
par getValue
.
Dernier point mais non le moindre, folders
un FolderIterator
objet comme le suggère l'erreur. À savoir, vous devez le parcourir de la même manière que dans ma solution. Gardez à l'esprit que si vous avez plusieurs dossiers portant le même nom, cette approche doit être modifiée pour obtenir le dossier de votre choix. Parce que cette approche renverra plusieurs identifiants correspondant à chacun des fichiers portant ce nom.
function copyfile() {
var ss = SpreadsheetApp.getActive();
var activeSheet = ss.getSheetByName("sheet_Patients");
var activeSheetFM = ss.getSheetByName("_FolderMaker_");
var lastRow = activeSheet.getLastRow();
var data = activeSheet.getRange(lastRow,3,1,1).getValue();
var secondData = activeSheet.getRange(lastRow,4,1,1).getValue();
var folder_Name = data+ ", " +secondData;
var folders = DriveApp.getFoldersByName(folder_Name);
while (folders.hasNext()) {
const folder = folders.next();
var id = folder.getId();
}
var finalId = activeSheetFM.getRange(2,4,1,1).setValue(id);
}
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots