需要帮助,我希望根据电子表格中提到的信息在我的谷歌驱动器中创建批量文件夹。电子表格的标题为“A”列作为名称,“B”列作为描述,“C”列作为父文件夹名称,“D”列作为其根或编号。
运行脚本后,它会做两件事。1:给出“异常:参数不能为空:描述”的错误 2:它只创建一个文件夹,并且名称仅作为第一个字母。例如,“A”列中的第 2 行名称为“abcd”,“A”列中的第 3 行名称为“XYZ”。这些脚本仅从第 2 行创建一个名为“A”而不是 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);
}
}
}