Need Help, I am looking to create bulk folders in my google drive from the information mentioned in the spreadsheet. The spreadsheet has header of Column "A" as Name, Column "B" as Description, Column "C" as Parent folder Name, and Column "D" as to whether its Root or No.
After running the script it does two things. 1: Gives error of "Exception: Argument cannot be null: description" 2: It creates only one folder and with name as the first letter only. e.g Row 2 in Column "A" has name 'abcd' and Row 3 in Column "A" has the name 'XYZ'. The scripts only create a folder from Row 2 with the name 'A' not abcd.
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('GDrive')
.addItem('Create new Folders', 'crtGdriveFolder')
.addToUi();
}
function crtGdriveFolder() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var numRows = sheet.getLastRow();
var maxRows = Math.min(numRows,20);
var folderid = sheet.getRange("C2").getValue();
var root = sheet.getRange("D2").getValue();
var dataRange = sheet.getRange(startRow, 1, maxRows, 2);
var data = dataRange.getValue();
var folderIterator = DriveApp.getFoldersByName(folderid);
if(!folderIterator.hasNext()) {
SpreadsheetApp.getActiveSpreadsheet().toast('Folder not Found!');
return;
}
var parentFolder = folderIterator.next();
if(folderIterator.hasNext()) {
SpreadsheetApp.getActiveSpreadsheet().toast('Folder has a non-unique name!');
return;
}
for (i in data) {
var row = data[i];
var name = row[0];
var desc = row[1];
if(root == "N" && name != "") {
var idNewFolder = parentFolder.createFolder(name).setDescription(desc).getId();
////Utilities.sleep(100);
var newFolder = DriveApp.getFolderById(idNewFolder);
} if(root == "Y" && name != "") {
var idNewFolder = DriveApp.createFolder(name).setDescription(desc).getId();
Utilities.sleep(100);
var newFolder = DriveApp.getFolderById(idNewFolder);
}
}
}