我有一个Google云端硬盘文件夹,里面有30多张Google表格。在每张纸上,我有5个以上的标签,每个标签都有至少一个受保护的单元格或标签本身。我想知道,是否可以将受保护单元格的所有这些权限作为文本提供给一个Google表格,以便能够快速查看并可能管理权限。我的长期目标是直接从Google Sheet中管理受保护的单元格。我一直在寻找,但没有找到任何资源让我走上正轨。
答案 0 :(得分:1)
我写了这个脚本来完成你想要的任务,
运行您需要打开电子表格的脚本,或者然后停止新的电子表格 转到工具 - >脚本编辑器进行创建,然后复制/粘贴代码。
更改“ ######################### ”作为容器文件夹的ID,以确定您可以打开文件夹的文件夹ID,然后复制与ID对应的URL部分 https://drive.google.com/drive/folders/的 ######################### 强>
添加菜单后,您需要刷新才能看到它。
使用:点击自定义工具 - >获取permisions列表,然后它将创建“表#”,其中包含所有信息
这是代码:
function onOpen(){
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Utilities').addItem('Get permisions list Here','testfunction').addToUi();
}
function testfunction() {
//Add a new sheet in the current Spreadsheet
var activeSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet().activate();
activeSheet.appendRow(['FileName','ID','Protection Description','Range','Type','Users']);
activeSheet.getRange("A1:F1").setFontWeight('bold');
//get all the Google Spreadsheet's files
var files = DriveApp.getFolderById("#########################").getFilesByType(MimeType.GOOGLE_SHEETS);
while (files.hasNext()) {
var file = files.next();
var ss = SpreadsheetApp.openById(file.getId());
//get the permisions in the current file, and print the data to the previous created sheet
var protectionsRange = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protectionsRange.length; i++) {
var protection = protectionsRange[i];
activeSheet.appendRow([file.getName(),file.getId(),protection.getDescription(),protection.getRange().getA1Notation(),protection.getProtectionType(),protection.getEditors().join(";")]);
//Logger.log(file.getName() + " | " + file.getId() + " \n| " + protection.getDescription() + " | " + protection.getRange().getA1Notation() + " | " + protection.getProtectionType() + " | " + protection.getEditors().join(";"));
}
var protectionsSheet = ss.getProtections(SpreadsheetApp.ProtectionType.SHEET);
for (var i = 0; i < protectionsSheet.length; i++) {
var protection = protectionsSheet[i];
activeSheet.appendRow([file.getName(),file.getId(),protection.getDescription(),protection.getRange().getA1Notation(),protection.getProtectionType(),protection.getEditors().join(";")]);
//Logger.log(file.getName() + " | " + file.getId() + " \n| " + protection.getDescription() + " | " + protection.getRange().getA1Notation() + " | " + protection.getProtectionType() + " | " + protection.getEditors().join(";"));
}
}
}