Доступ и изменение защищенных диапазонов и листов. Защищенный диапазон может защищать либо статический диапазон ячеек, либо именованный диапазон. Защищенный лист может включать незащищенные области. Для электронных таблиц, созданных с помощью более старой версии Google Sheets, вместо этого используйте класс
.PageProtection
// Protect range A1:B10, then remove all other users from the list of editors. var ss = SpreadsheetApp.getActive(); var range = ss.getRange('A1:B10'); var protection = range.protect().setDescription('Sample protected range'); // Ensure the current user is an editor before removing others. Otherwise, if the user's edit // permission comes from a group, the script throws an exception upon removing the group. var me = Session.getEffectiveUser(); protection.addEditor(me); protection.removeEditors(protection.getEditors()); if (protection.canDomainEdit()) { protection.setDomainEdit(false); }
// Remove all range protections in the spreadsheet that the user has permission to edit. var ss = SpreadsheetApp.getActive(); var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE); for (var i = 0; i < protections.length; i++) { var protection = protections[i]; if (protection.canEdit()) { protection.remove(); } }
// Protect the active sheet, then remove all other users from the list of editors. var sheet = SpreadsheetApp.getActiveSheet(); var protection = sheet.protect().setDescription('Sample protected sheet'); // Ensure the current user is an editor before removing others. Otherwise, if the user's edit // permission comes from a group, the script throws an exception upon removing the group. var me = Session.getEffectiveUser(); protection.addEditor(me); protection.removeEditors(protection.getEditors()); if (protection.canDomainEdit()) { protection.setDomainEdit(false); }
Методы
Метод | Тип возврата | Краткое описание |
---|---|---|
addEditor(emailAddress) | Protection | Добавляет данного пользователя в список редакторов защищенного листа или диапазона. |
addEditor(user) | Protection | Добавляет данного пользователя в список редакторов защищенного листа или диапазона. |
addEditors(emailAddresses) | Protection | Добавляет заданный массив пользователей в список редакторов защищенного листа или диапазона. |
addTargetAudience(audienceId) | Protection | Добавляет указанную целевую аудиторию в качестве редактора защищенного диапазона. |
canDomainEdit() | Boolean | Определяет, имеют ли все пользователи домена, которому принадлежит электронная таблица, разрешение на редактирование защищенного диапазона или листа. |
canEdit() | Boolean | Определяет, есть ли у пользователя разрешение на редактирование защищенного диапазона или листа. |
getDescription() | String | Получает описание защищенного диапазона или листа. |
getEditors() | User[] | Получает список редакторов для защищенного диапазона или листа. |
getProtectionType() | ProtectionType | Получает тип защищаемой области: RANGE или SHEET . |
getRange() | Range | Получает защищаемый диапазон. |
getRangeName() | String | Получает имя защищенного диапазона, если он связан с именованным диапазоном. |
getTargetAudiences() | TargetAudience[] | Возвращает идентификаторы целевых аудиторий, которые могут редактировать защищенный диапазон. |
getUnprotectedRanges() | Range[] | Получает массив незащищенных диапазонов на защищенном листе. |
isWarningOnly() | Boolean | Определяет, использует ли защищенная область защиту «на основе предупреждений». |
remove() | void | Снимает защиту диапазона или листа. |
removeEditor(emailAddress) | Protection | Удаляет данного пользователя из списка редакторов защищенного листа или диапазона. |
removeEditor(user) | Protection | Удаляет данного пользователя из списка редакторов защищенного листа или диапазона. |
removeEditors(emailAddresses) | Protection | Удаляет заданный массив пользователей из списка редакторов защищенного листа или диапазона. |
removeTargetAudience(audienceId) | Protection | Удаляет указанную целевую аудиторию в качестве редактора защищенного диапазона. |
setDescription(description) | Protection | Задает описание защищенного диапазона или листа. |
setDomainEdit(editable) | Protection | Определяет, имеют ли все пользователи домена, которому принадлежит электронная таблица, разрешение на редактирование защищенного диапазона или листа. |
setNamedRange(namedRange) | Protection | Связывает защищенный диапазон с существующим именованным диапазоном. |
setRange(range) | Protection | Регулирует защищаемый диапазон. |
setRangeName(rangeName) | Protection | Связывает защищенный диапазон с существующим именованным диапазоном. |
setUnprotectedRanges(ranges) | Protection | Снимает защиту с данного массива диапазонов внутри защищенного листа. |
setWarningOnly(warningOnly) | Protection | Устанавливает, использует ли этот защищенный диапазон защиту «на основе предупреждений». |
Подробная документация
addEditor(emailAddress)
Добавляет данного пользователя в список редакторов защищенного листа или диапазона. Этот метод не дает пользователю автоматически разрешения на редактирование самой электронной таблицы; чтобы сделать это дополнительно, вызовите Spreadsheet.addEditor(emailAddress)
.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Adds an editor to the spreadsheet using an email address. // TODO(developer): Replace the email address with a valid email. ss.addEditor('cloudysanfrancisco@gmail.com'); // Gets a sheet by its name and protects it. const sheet = ss.getSheetByName('Sheet1'); const sampleProtectedSheet = sheet.protect(); // Adds an editor of the protected sheet using an email address. // TODO(developer): Replace the email address with a valid email. sampleProtectedSheet.addEditor('cloudysanfrancisco@gmail.com'); // Gets the editors of the protected sheet. const editors = sampleProtectedSheet.getEditors(); // Logs the editors' email addresses to the console. for (const editor of editors) { console.log(editor.getEmail()); }
Параметры
Имя | Тип | Описание |
---|---|---|
emailAddress | String | Адрес электронной почты пользователя, которого необходимо добавить. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addEditor(user)
Добавляет данного пользователя в список редакторов защищенного листа или диапазона. Этот метод не дает пользователю автоматически разрешения на редактирование самой электронной таблицы; чтобы сделать это дополнительно, вызовите Spreadsheet.addEditor(user)
.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Adds the active user as an editor of the protected sheet. sampleProtectedSheet.addEditor(Session.getActiveUser()); // Gets the editors of the protected sheet. const editors = sampleProtectedSheet.getEditors(); // Logs the editors' email addresses to the console. for (const editor of editors) { console.log(editor.getEmail()); }
Параметры
Имя | Тип | Описание |
---|---|---|
user | User | Представление добавляемого пользователя. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addEditors(emailAddresses)
Добавляет заданный массив пользователей в список редакторов защищенного листа или диапазона. Этот метод не дает пользователям автоматически разрешение на редактирование самой электронной таблицы; чтобы сделать это дополнительно, вызовите Spreadsheet.addEditors(emailAddresses)
.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Creates variables for the email addresses to add as editors. // TODO(developer): Replace the email addresses with valid ones. const TEST_EMAIL_1 = 'cloudysanfrancisco@gmail.com'; const TEST_EMAIL_2 = 'baklavainthebalkans@gmail.com'; // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Adds editors to the protected sheet using the email address variables. sampleProtectedSheet.addEditors([TEST_EMAIL_1, TEST_EMAIL_2]); // Gets the editors of the protected sheet. const editors = sampleProtectedSheet.getEditors(); // Logs the editors' email addresses to the console. for (const editor of editors) { console.log(editor.getEmail()); }
Параметры
Имя | Тип | Описание |
---|---|---|
emailAddresses | String[] | Массив адресов электронной почты пользователей, которых нужно добавить. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addTargetAudience(audienceId)
Добавляет указанную целевую аудиторию в качестве редактора защищенного диапазона.
Параметры
Имя | Тип | Описание |
---|---|---|
audienceId | String | Идентификатор целевой аудитории, которую нужно добавить. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
canDomainEdit()
Определяет, имеют ли все пользователи домена, которому принадлежит электронная таблица, разрешение на редактирование защищенного диапазона или листа. Выдает исключение, если у пользователя нет разрешения на редактирование защищенного диапазона или листа.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Logs whether domain users have permission to edit the protected sheet to the console. console.log(sampleProtectedSheet.canDomainEdit());
Возвращаться
Boolean
— true
, если все пользователи в домене, которому принадлежит электронная таблица, имеют разрешение на редактирование защищенного диапазона или листа; false
, если они этого не делают.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
canEdit()
Определяет, есть ли у пользователя разрешение на редактирование защищенного диапазона или листа. Владелец таблицы всегда может редактировать защищенные диапазоны и листы.
// Remove all range protections in the spreadsheet that the user has permission to edit. var ss = SpreadsheetApp.getActive(); var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE); for (var i = 0; i < protections.length; i++) { var protection = protections[i]; if (protection.canEdit()) { protection.remove(); } }
Возвращаться
Boolean
— true
, если у пользователя есть разрешение на редактирование защищенного диапазона или листа; false
, если нет
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDescription()
Получает описание защищенного диапазона или листа. Если описание не задано, этот метод возвращает пустую строку.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet and sets the description. const sampleProtectedSheet = sheet.protect().setDescription('Sample sheet is protected'); // Gets the description of the protected sheet and logs it to the console. const sampleProtectedSheetDescription = sampleProtectedSheet.getDescription(); console.log(sampleProtectedSheetDescription);
Возвращаться
String
— описание защищенного диапазона или листа или пустая строка, если описание не задано.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getEditors()
Получает список редакторов для защищенного диапазона или листа. Выдает исключение, если у пользователя нет разрешения на редактирование защищенного диапазона или листа.
// Protect the active sheet, then remove all other users from the list of editors. var sheet = SpreadsheetApp.getActiveSheet(); var protection = sheet.protect().setDescription('Sample protected sheet'); // Ensure the current user is an editor before removing others. Otherwise, if the user's edit // permission comes from a group, the script throws an exception upon removing the group. var me = Session.getEffectiveUser(); protection.addEditor(me); protection.removeEditors(protection.getEditors()); if (protection.canDomainEdit()) { protection.setDomainEdit(false); }
Возвращаться
User[]
— массив пользователей с разрешением на редактирование защищенного диапазона или листа.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getProtectionType()
Получает тип защищаемой области: RANGE
или SHEET
.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Gets the type of the protected area. const protectionType = sampleProtectedSheet.getProtectionType(); // Logs 'SHEET'to the console since the type of the protected area is a sheet. console.log(protectionType.toString());
Возвращаться
ProtectionType
— Тип защищенной области: RANGE
или SHEET
.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getRange()
Получает защищаемый диапазон. Если защита применяется к листу, а не к диапазону, этот метод возвращает диапазон, охватывающий весь лист.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets the range 'A1:B10' of Sheet1. const range = sheet.getRange('A1:B10'); // Makes cells A1:B10 a protected range. const sampleProtectedRange = range.protect(); // Gets the protected ranges on the sheet. const protections = sheet.getProtections(SpreadsheetApp.ProtectionType.RANGE); // Logs the A1 notation of the first protected range on the sheet. console.log(protections[0].getRange().getA1Notation());
Возвращаться
Range
— диапазон, который защищается.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getRangeName()
Получает имя защищенного диапазона, если он связан с именованным диапазоном. Возвращает null
, если защита не связана с именованным диапазоном. Обратите внимание, что сценарии должны явно вызывать setRangeName(rangeName)
чтобы связать защищенный диапазон с именованным диапазоном; вызова Range.protect()
для создания защиты из Range
, который является именованным диапазоном, без вызова setRangeName(rangeName)
недостаточно для их связывания. Однако создание защищенного диапазона из именованного диапазона в пользовательском интерфейсе Google Sheets автоматически связывает их.
// Protect a named range in a spreadsheet and log the name of the protected range. var ss = SpreadsheetApp.getActive(); var range = ss.getRange('A1:B10'); var protection = range.protect(); ss.setNamedRange('Test', range); // Create a named range. protection.setRangeName('Test'); // Associate the protection with the named range. Logger.log(protection.getRangeName()); // Verify the name of the protected range.
Возвращаться
String
— имя защищенного именованного диапазона или null
если защищенный диапазон не связан с именованным диапазоном.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getTargetAudiences()
Возвращает идентификаторы целевых аудиторий, которые могут редактировать защищенный диапазон.
Возвращаться
TargetAudience[]
— Массив идентификаторов целевых аудиторий.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getUnprotectedRanges()
Получает массив незащищенных диапазонов на защищенном листе. Если объект Protection
соответствует защищенному диапазону, а не защищенному листу, этот метод возвращает пустой массив. Чтобы изменить незащищенные диапазоны, используйте setUnprotectedRanges(ranges)
чтобы установить новый массив диапазонов; чтобы повторно защитить весь лист, установите пустой массив.
// Unprotect cells E2:F5 in addition to any other unprotected ranges in the protected sheet. var sheet = SpreadsheetApp.getActiveSheet(); var protection = sheet.protect(); var unprotected = protection.getUnprotectedRanges(); unprotected.push(sheet.getRange('E2:F5')); protection.setUnprotectedRanges(unprotected);
Возвращаться
Range[]
— массив незащищенных диапазонов внутри защищенного листа.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
isWarningOnly()
Определяет, использует ли защищенная область защиту «на основе предупреждений». Защита на основе предупреждений означает, что каждый пользователь может редактировать данные в области, за исключением того, что при редактировании отображается предупреждение с просьбой подтвердить редактирование. По умолчанию защищенные диапазоны или листы не основаны на предупреждениях. Чтобы перейти в состояние предупреждения, используйте setWarningOnly(warningOnly)
.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit') // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Sets the warning status for the protected sheet as true. sampleProtectedSheet.setWarningOnly(true); const protectedSheetWarningStatus = sampleProtectedSheet.isWarningOnly(); // Logs the warning status of the protected sheet to the console. console.log(protectedSheetWarningStatus);
Возвращаться
Boolean
— true
, если защищенный диапазон или лист использует только защиту на основе предупреждений.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
remove()
Снимает защиту диапазона или листа.
// Remove all range protections in the spreadsheet that the user has permission to edit. var ss = SpreadsheetApp.getActive(); var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE); for (var i = 0; i < protections.length; i++) { var protection = protections[i]; if (protection.canEdit()) { protection.remove(); } }
// Remove sheet protection from the active sheet, if the user has permission to edit it. var sheet = SpreadsheetApp.getActiveSheet(); var protection = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0]; if (protection && protection.canEdit()) { protection.remove(); }
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
removeEditor(emailAddress)
Удаляет данного пользователя из списка редакторов защищенного листа или диапазона. Обратите внимание: если пользователь является членом группы Google, имеющей разрешение на редактирование, или если все пользователи в домене имеют разрешение на редактирование, пользователь по-прежнему сможет редактировать защищенную область. Ни владельца таблицы, ни текущего пользователя удалить невозможно.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Creates a variable for an email address. // TODO(developer): Replace the email address with a valid one. const TEST_EMAIL = 'baklavainthebalkans@gmail.com'; // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Adds an editor to the protected sheet using the email address variable. sampleProtectedSheet.addEditor(TEST_EMAIL); // Removes the editor from the protected sheet using the email address variable. sampleProtectedSheet.removeEditor(TEST_EMAIL); // Gets the editors of the protected sheet. const editors = sampleProtectedSheet.getEditors(); // Logs the editors' email addresses to the console. for (const editor of editors) { console.log(editor.getEmail()); }
Параметры
Имя | Тип | Описание |
---|---|---|
emailAddress | String | Адрес электронной почты пользователя, которого необходимо удалить. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
removeEditor(user)
Удаляет данного пользователя из списка редакторов защищенного листа или диапазона. Обратите внимание: если пользователь является членом группы Google, имеющей разрешение на редактирование, или если все пользователи в домене имеют разрешение на редактирование, он все равно сможет редактировать защищенную область. Ни владельца таблицы, ни текущего пользователя удалить невозможно.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Removes the active user from the editors of the protected sheet. sampleProtectedSheet.removeEditor(Session.getActiveUser()); // Gets the editors of the protected sheet. const editors = sampleProtectedSheet.getEditors(); // Logs the editors' email addresses to the console. for (const editor of editors) { console.log(editor.getEmail()); }
Параметры
Имя | Тип | Описание |
---|---|---|
user | User | Представление пользователя, которого нужно удалить. |
Возвращаться
Protection
— объект, представляющий настройки защиты, для цепочки
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
removeEditors(emailAddresses)
Удаляет заданный массив пользователей из списка редакторов защищенного листа или диапазона. Обратите внимание: если кто-либо из пользователей является членом группы Google, имеющей разрешение на редактирование, или если все пользователи в домене имеют разрешение на редактирование, эти пользователи по-прежнему смогут редактировать защищенную область. Ни владельца таблицы, ни текущего пользователя удалить нельзя.
// Protect the active sheet, then remove all other users from the list of editors. var sheet = SpreadsheetApp.getActiveSheet(); var protection = sheet.protect().setDescription('Sample protected sheet'); // Ensure the current user is an editor before removing others. Otherwise, if the user's edit // permission comes from a group, the script throws an exception upon removing the group. var me = Session.getEffectiveUser(); protection.addEditor(me); protection.removeEditors(protection.getEditors()); if (protection.canDomainEdit()) { protection.setDomainEdit(false); }
Параметры
Имя | Тип | Описание |
---|---|---|
emailAddresses | String[] | Массив адресов электронной почты пользователей, которых нужно удалить. |
Возвращаться
Protection
— объект, представляющий настройки защиты, для цепочки
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
removeTargetAudience(audienceId)
Удаляет указанную целевую аудиторию в качестве редактора защищенного диапазона.
Параметры
Имя | Тип | Описание |
---|---|---|
audienceId | String | Идентификатор целевой аудитории, которую необходимо удалить. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setDescription(description)
Задает описание защищенного диапазона или листа.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets the sheet 'Sheet1' by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Sets the sheet description to 'Sheet1 is protected.' sampleProtectedSheet.setDescription('Sheet1 is protected'); // Gets the description of the protected sheet. const sampleProtectedSheetDescription = sampleProtectedSheet.getDescription(); // Logs the description of the protected sheet to the console. console.log(sampleProtectedSheetDescription);
Параметры
Имя | Тип | Описание |
---|---|---|
description | String | Описание защищенного диапазона или листа. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setDomainEdit(editable)
Определяет, имеют ли все пользователи домена, которому принадлежит электронная таблица, разрешение на редактирование защищенного диапазона или листа. Обратите внимание, что любые пользователи, имеющие явное разрешение на редактирование, могут редактировать защищенную область независимо от этого параметра. Выдает исключение, если электронная таблица не принадлежит домену Google Workspace (то есть если она принадлежит учетной записи gmail.com).
Параметры
Имя | Тип | Описание |
---|---|---|
editable | Boolean | true , если все пользователи в домене, которому принадлежит электронная таблица, должны иметь разрешение на редактирование защищенного диапазона или листа; false , если нет. |
Возвращаться
Protection
— объект, представляющий настройки защиты, для цепочки
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setNamedRange(namedRange)
Связывает защищенный диапазон с существующим именованным диапазоном. Если именованный диапазон охватывает область, отличную от текущего защищенного диапазона, этот метод перемещает защиту, чтобы вместо этого охватить именованный диапазон. Именованный диапазон должен находиться на том же листе, что и текущий защищенный диапазон. Обратите внимание, что сценарии должны явно вызывать этот метод, чтобы связать защищенный диапазон с именованным диапазоном; вызова Range.protect()
для создания защиты из Range
, который является именованным диапазоном, без вызова setRangeName(rangeName)
недостаточно для их связывания. Однако создание защищенного диапазона из именованного диапазона в пользовательском интерфейсе Google Sheets автоматически связывает их.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Protects cells A1:D10 on Sheet1. const sheet = ss.getSheetByName('Sheet1'); const protectedRange = sheet.getRange('A1:D10').protect(); // Logs the current protected range, A1:D10. console.log(protectedRange.getRange().getA1Notation()); // Creates a named range for cells E1:J10 called 'NewRange.' const newRange = sheet.getRange('E1:J10'); ss.setNamedRange('NewRange', newRange); const namedRange = ss.getNamedRanges()[0]; // Updates the protected range to the named range, 'NewRange.' // This updates the protected range on Sheet1 from A1:D10 to E1:J10. protectedRange.setNamedRange(namedRange); // Logs the updated protected range to the console. console.log(protectedRange.getRange().getA1Notation());
Параметры
Имя | Тип | Описание |
---|---|---|
namedRange | NamedRange | Существующий именованный диапазон, который необходимо связать с защищенным диапазоном. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setRange(range)
Регулирует защищаемый диапазон. Если данный диапазон охватывает область, отличную от текущего защищенного диапазона, этот метод вместо этого перемещает защиту на новый диапазон.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Protects cells A1:D10 on Sheet1 of the spreadsheet. const sheet = ss.getSheetByName('Sheet1'); const protectedRange = sheet.getRange('A1:D10').protect(); // Logs the original protected range, A1:D10, to the console. console.log(protectedRange.getRange().getA1Notation()); // Gets the range E1:J10. const newRange = sheet.getRange('E1:J10'); // Updates the protected range to E1:J10. protectedRange.setRange(newRange); // Logs the updated protected range to the console. console.log(protectedRange.getRange().getA1Notation());
Параметры
Имя | Тип | Описание |
---|---|---|
range | Range | Новый ассортимент для защиты от правок. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setRangeName(rangeName)
Связывает защищенный диапазон с существующим именованным диапазоном. Если именованный диапазон охватывает область, отличную от текущего защищенного диапазона, этот метод перемещает защиту, чтобы вместо этого охватить именованный диапазон. Именованный диапазон должен находиться на том же листе, что и текущий защищенный диапазон. Обратите внимание, что сценарии должны явно вызывать этот метод, чтобы связать защищенный диапазон с именованным диапазоном; вызова Range.protect()
для создания защиты из Range
, который является именованным диапазоном, без вызова setRangeName(rangeName)
недостаточно для их связывания. Однако создание защищенного диапазона из именованного диапазона в пользовательском интерфейсе Google Sheets автоматически связывает их.
// Protect a named range in a spreadsheet and log the name of the protected range. var ss = SpreadsheetApp.getActive(); var range = ss.getRange('A1:B10'); var protection = range.protect(); ss.setNamedRange('Test', range); // Create a named range. protection.setRangeName('Test'); // Associate the protection with the named range. Logger.log(protection.getRangeName()); // Verify the name of the protected range.
Параметры
Имя | Тип | Описание |
---|---|---|
rangeName | String | Имя именованного диапазона, который необходимо защитить. |
Возвращаться
Protection
— объект, представляющий настройки защиты, для цепочки
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setUnprotectedRanges(ranges)
Снимает защиту с данного массива диапазонов внутри защищенного листа. Выдает исключение, если объект Protection
соответствует защищенному диапазону, а не защищенному листу, или если какой-либо из диапазонов не находится на защищенном листе. Чтобы изменить незащищенные диапазоны, установите новый массив диапазонов; чтобы повторно защитить весь лист, установите пустой массив.
// Protect the active sheet except B2:C5, then remove all other users from the list of editors. var sheet = SpreadsheetApp.getActiveSheet(); var protection = sheet.protect().setDescription('Sample protected sheet'); var unprotected = sheet.getRange('B2:C5'); protection.setUnprotectedRanges([unprotected]); // Ensure the current user is an editor before removing others. Otherwise, if the user's edit // permission comes from a group, the script throws an exception upon removing the group. var me = Session.getEffectiveUser(); protection.addEditor(me); protection.removeEditors(protection.getEditors()); if (protection.canDomainEdit()) { protection.setDomainEdit(false); }
Параметры
Имя | Тип | Описание |
---|---|---|
ranges | Range[] | Массив диапазонов, которые следует оставить незащищенными на защищенном листе. |
Возвращаться
Protection
— объект, представляющий настройки защиты, для цепочки
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setWarningOnly(warningOnly)
Устанавливает, использует ли этот защищенный диапазон защиту «на основе предупреждений». Защита на основе предупреждений означает, что каждый пользователь может редактировать данные в области, за исключением того, что при редактировании отображается предупреждение с просьбой подтвердить редактирование. По умолчанию защищенные диапазоны или листы не основаны на предупреждениях. Чтобы проверить состояние предупреждения, используйте isWarningOnly()
.
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets the sheet 'Sheet1' by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet and sets the protection to warning-based. const sampleProtectedSheet = sheet.protect().setWarningOnly(true); // Logs whether the protected sheet is warning-based to the console. console.log(sampleProtectedSheet.isWarningOnly());
Параметры
Имя | Тип | Описание |
---|---|---|
warningOnly | Boolean |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Сценарии, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets