0

У меня есть папка с Google Диском, в которой есть 30 + Google Таблиц. В каждом листе у меня есть 5 + вкладки, и каждая из этих вкладок имеет по крайней мере один защищенный набор ячеек или вкладку. Мне было интересно, возможно ли передать все эти разрешения для защищенных ячеек в один лист Google в виде текста, чтобы иметь возможность быстро просматривать и потенциально управлять разрешениями. Моя долгосрочная цель состоит в том, чтобы управлять защищенными ячейками прямо из одного Листа Google. Я искал, но не нашел никаких ресурсов, чтобы отправить меня по правильному пути.Управление защищенными Google элементами в листе Google

ответ

1

Я writed этот сценарий делает задачу, которую вы хотите,

для запуска сценария вам нужно открыть таблицу, или Цеат новый, в то Перейти к tool-> редактор скриптов для создания его, затем скопируйте/вставьте код.

Измените «########################» на идентификатор папки вашего контейнера, чтобы определить идентификатор вашей папки вы можете открыть папку затем скопировать 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(";")); 
    } 
    } 
} 
Смежные вопросы