您可以先将 csv 文件导入 Google 表格,然后再使用 Apps 脚本完成任务。
因此,假设您的工作表最终看起来类似于以下内容:
| First Name |
ID Number |
Email ID |
| Name1 |
N1 |
E1 |
| Name2 |
N2 |
E2 |
| Name3 |
N3 |
E3 |
您可以使用Drive 高级服务来创建文件夹并分配权限。您可以查看以下脚本以实现此目的:
代码
function mainFunction() {
let spreadsheet = SpreadsheetApp.openById("SPREADSHEET_ID");
let sheet = spreadsheet.getSheetByName("SHEET_NAME");
let nameCol = sheet.getRange(START_ROW, START_COL, NO_ROWS, NO_COLS).getValues();
let idCol = sheet.getRange(START_ROW, START_COL, NO_ROWS, NO_COLS).getValues();
let emailCol = sheet.getRange(START_ROW, START_COL, NO_ROWS, NO_COLS).getValues();
for (let i = 0; i < nameCol.length; i++) {
let fileName = nameCol[i + 1][0] + "_" + idCol[i + 1][0];
let folderId = createFolder(fileName);
createPermission(emailCol[i + 1][0], folderId);
}
}
function createFolder(fileName) {
let optionalArgs = { supportsAllDrives: true };
let resource = {
title: fileName,
mimeType: 'application/vnd.google-apps.folder',
parents: [{
"id": "SHARED_DRIVE_ID"
}]
}
let folder = Drive.Files.insert(resource, null, optionalArgs);
return folder.id;
}
function createPermission(emailAddress, folderId) {
let optionalArgs = { supportsAllDrives: true };
let resource = {
role: "ROLE",
type: "TYPE",
emailAddress: emailAddress
}
Drive.Permissions.insert(resource, folderId);
}
说明
脚本由三个函数组成:mainFunction、createFolder 和createPermission。 mainFunction 用于收集工作表中的所有值,而createFolder 和createPermission 用于创建文件夹并为其分配必要的权限。由于您使用的是共享驱动器,因此正确的方法是使用 Drive 高级服务。
参考