Доступ и изменение защищенных диапазонов и листов. Защищенный диапазон может защищать либо статический диапазон ячеек, либо именованный диапазон. Защищенный лист может включать незащищенные области. Для электронных таблиц, созданных с помощью более старой версии Google Sheets, вместо этого используйте класс
.Page Protection
// Protect range A1:B10, then remove all other users from the list of editors. const ss = SpreadsheetApp.getActive(); const range = ss.getRange('A1:B10'); const 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. const 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. const ss = SpreadsheetApp.getActive(); const protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE); for (let i = 0; i < protections.length; i++) { const protection = protections[i]; if (protection.canEdit()) { protection.remove(); } }
// Protect the active sheet, then remove all other users from the list of // editors. const sheet = SpreadsheetApp.getActiveSheet(); const 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. const me = Session.getEffectiveUser(); protection.addEditor(me); protection.removeEditors(protection.getEditors()); if (protection.canDomainEdit()) { protection.setDomainEdit(false); }
Методы
Метод | Тип возврата | Краткое описание |
---|---|---|
add Editor(emailAddress) | Protection | Добавляет данного пользователя в список редакторов защищенного листа или диапазона. |
add Editor(user) | Protection | Добавляет данного пользователя в список редакторов защищенного листа или диапазона. |
add Editors(emailAddresses) | Protection | Добавляет заданный массив пользователей в список редакторов защищенного листа или диапазона. |
add Target Audience(audienceId) | Protection | Добавляет указанную целевую аудиторию в качестве редактора защищенного диапазона. |
can Domain Edit() | Boolean | Определяет, имеют ли все пользователи домена, которому принадлежит электронная таблица, разрешение на редактирование защищенного диапазона или листа. |
can Edit() | Boolean | Определяет, есть ли у пользователя разрешение на редактирование защищенного диапазона или листа. |
get Description() | String | Получает описание защищенного диапазона или листа. |
get Editors() | User[] | Получает список редакторов для защищенного диапазона или листа. |
get Protection Type() | Protection Type | Получает тип защищаемой области: RANGE или SHEET . |
get Range() | Range | Получает защищаемый диапазон. |
get Range Name() | String | Получает имя защищенного диапазона, если он связан с именованным диапазоном. |
get Target Audiences() | Target Audience[] | Возвращает идентификаторы целевых аудиторий, которые могут редактировать защищенный диапазон. |
get Unprotected Ranges() | Range[] | Получает массив незащищенных диапазонов на защищенном листе. |
is Warning Only() | Boolean | Определяет, использует ли защищенная область защиту «на основе предупреждений». |
remove() | void | Снимает защиту диапазона или листа. |
remove Editor(emailAddress) | Protection | Удаляет данного пользователя из списка редакторов защищенного листа или диапазона. |
remove Editor(user) | Protection | Удаляет данного пользователя из списка редакторов защищенного листа или диапазона. |
remove Editors(emailAddresses) | Protection | Удаляет заданный массив пользователей из списка редакторов защищенного листа или диапазона. |
remove Target Audience(audienceId) | Protection | Удаляет указанную целевую аудиторию в качестве редактора защищенного диапазона. |
set Description(description) | Protection | Задает описание защищенного диапазона или листа. |
set Domain Edit(editable) | Protection | Определяет, имеют ли все пользователи домена, которому принадлежит электронная таблица, разрешение на редактирование защищенного диапазона или листа. |
set Named Range(namedRange) | Protection | Связывает защищенный диапазон с существующим именованным диапазоном. |
set Range(range) | Protection | Регулирует защищаемый диапазон. |
set Range Name(rangeName) | Protection | Связывает защищенный диапазон с существующим именованным диапазоном. |
set Unprotected Ranges(ranges) | Protection | Снимает защиту с данного массива диапазонов внутри защищенного листа. |
set Warning Only(warningOnly) | Protection | Устанавливает, использует ли этот защищенный диапазон защиту «на основе предупреждений». |
Подробная документация
add Editor(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()); }
Параметры
Имя | Тип | Описание |
---|---|---|
email Address | String | Адрес электронной почты пользователя, которого необходимо добавить. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
add Editor(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
add Editors(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()); }
Параметры
Имя | Тип | Описание |
---|---|---|
email Addresses | String[] | Массив адресов электронной почты пользователей, которых нужно добавить. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
add Target Audience(audienceId)
Добавляет указанную целевую аудиторию в качестве редактора защищенного диапазона.
Параметры
Имя | Тип | Описание |
---|---|---|
audience Id | String | Идентификатор целевой аудитории, которую нужно добавить. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
can Domain Edit()
Определяет, имеют ли все пользователи домена, которому принадлежит электронная таблица, разрешение на редактирование защищенного диапазона или листа. Выдает исключение, если у пользователя нет разрешения на редактирование защищенного диапазона или листа.
// 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
can Edit()
Определяет, есть ли у пользователя разрешение на редактирование защищенного диапазона или листа. Владелец таблицы всегда может редактировать защищенные диапазоны и листы.
// Remove all range protections in the spreadsheet that the user has permission // to edit. const ss = SpreadsheetApp.getActive(); const protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE); for (let i = 0; i < protections.length; i++) { const protection = protections[i]; if (protection.canEdit()) { protection.remove(); } }
Возвращаться
Boolean
— true
, если у пользователя есть разрешение на редактирование защищенного диапазона или листа; false
если нет
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
get 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 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
get Editors()
Получает список редакторов для защищенного диапазона или листа. Выдает исключение, если у пользователя нет разрешения на редактирование защищенного диапазона или листа.
// Protect the active sheet, then remove all other users from the list of // editors. const sheet = SpreadsheetApp.getActiveSheet(); const 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. const 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
get Protection Type()
Получает тип защищаемой области: 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());
Возвращаться
Protection Type
— тип защищенной области: RANGE
или SHEET
.
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
get 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', ); // 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
get Range Name()
Получает имя защищенного диапазона, если он связан с именованным диапазоном. Возвращает значение null
, если защита не связана с именованным диапазоном. Обратите внимание, что сценарии должны явно вызывать set Range Name(rangeName)
чтобы связать защищенный диапазон с именованным диапазоном; вызова Range.protect()
для создания защиты от Range
, который является именованным диапазоном, без вызова set Range Name(rangeName)
недостаточно для их связывания. Однако создание защищенного диапазона из именованного диапазона в пользовательском интерфейсе Google Sheets автоматически связывает их.
// Protect a named range in a spreadsheet and log the name of the protected // range. const ss = SpreadsheetApp.getActive(); const range = ss.getRange('A1:B10'); const 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
get Target Audiences()
Возвращает идентификаторы целевых аудиторий, которые могут редактировать защищенный диапазон.
Возвращаться
Target Audience[]
— Массив идентификаторов целевых аудиторий.
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
get Unprotected Ranges()
Получает массив незащищенных диапазонов на защищенном листе. Если объект Protection
соответствует защищенному диапазону, а не защищенному листу, этот метод возвращает пустой массив. Чтобы изменить незащищенные диапазоны, используйте set Unprotected Ranges(ranges)
чтобы установить новый массив диапазонов; чтобы повторно защитить весь лист, установите пустой массив.
// Unprotect cells E2:F5 in addition to any other unprotected ranges in the // protected sheet. const sheet = SpreadsheetApp.getActiveSheet(); const protection = sheet.protect(); const 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
is Warning Only()
Определяет, использует ли защищенная область защиту «на основе предупреждений». Защита на основе предупреждений означает, что каждый пользователь может редактировать данные в области, за исключением того, что при редактировании отображается предупреждение с просьбой подтвердить редактирование. По умолчанию защищенные диапазоны или листы не основаны на предупреждениях. Чтобы перейти в состояние предупреждения, используйте set Warning Only(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. const ss = SpreadsheetApp.getActive(); const protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE); for (let i = 0; i < protections.length; i++) { const protection = protections[i]; if (protection.canEdit()) { protection.remove(); } }
// Remove sheet protection from the active sheet, if the user has permission to // edit it. const sheet = SpreadsheetApp.getActiveSheet(); const protection = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0]; if (protection?.canEdit()) { protection.remove(); }
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
remove Editor(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()); }
Параметры
Имя | Тип | Описание |
---|---|---|
email Address | String | Адрес электронной почты пользователя, которого необходимо удалить. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
remove Editor(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
remove Editors(emailAddresses)
Удаляет заданный массив пользователей из списка редакторов защищенного листа или диапазона. Обратите внимание: если кто-либо из пользователей является членом группы Google, имеющей разрешение на редактирование, или если все пользователи в домене имеют разрешение на редактирование, эти пользователи по-прежнему смогут редактировать защищенную область. Ни владельца таблицы, ни текущего пользователя удалить нельзя.
// Protect the active sheet, then remove all other users from the list of // editors. const sheet = SpreadsheetApp.getActiveSheet(); const 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. const me = Session.getEffectiveUser(); protection.addEditor(me); protection.removeEditors(protection.getEditors()); if (protection.canDomainEdit()) { protection.setDomainEdit(false); }
Параметры
Имя | Тип | Описание |
---|---|---|
email Addresses | String[] | Массив адресов электронной почты пользователей, которых нужно удалить. |
Возвращаться
Protection
— объект, представляющий настройки защиты, для цепочки
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
remove Target Audience(audienceId)
Удаляет указанную целевую аудиторию в качестве редактора защищенного диапазона.
Параметры
Имя | Тип | Описание |
---|---|---|
audience Id | String | Идентификатор целевой аудитории, которую необходимо удалить. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
set Description(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
set Domain Edit(editable)
Определяет, имеют ли все пользователи домена, которому принадлежит электронная таблица, разрешение на редактирование защищенного диапазона или листа. Обратите внимание, что любые пользователи, имеющие явное разрешение на редактирование, могут редактировать защищенную область независимо от этого параметра. Выдает исключение, если электронная таблица не принадлежит домену Google Workspace (то есть если она принадлежит учетной записи gmail.com).
Параметры
Имя | Тип | Описание |
---|---|---|
editable | Boolean | true , если все пользователи в домене, которому принадлежит электронная таблица, должны иметь разрешение на редактирование защищенного диапазона или листа; false если нет. |
Возвращаться
Protection
— объект, представляющий настройки защиты, для цепочки
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
set Named Range(namedRange)
Связывает защищенный диапазон с существующим именованным диапазоном. Если именованный диапазон охватывает область, отличную от текущего защищенного диапазона, этот метод перемещает защиту, чтобы вместо этого охватить именованный диапазон. Именованный диапазон должен находиться на том же листе, что и текущий защищенный диапазон. Обратите внимание, что сценарии должны явно вызывать этот метод, чтобы связать защищенный диапазон с именованным диапазоном; вызова Range.protect()
для создания защиты от Range
, который является именованным диапазоном, без вызова set Range Name(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());
Параметры
Имя | Тип | Описание |
---|---|---|
named Range | Named Range | Существующий именованный диапазон, который необходимо связать с защищенным диапазоном. |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
set Range(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
set Range Name(rangeName)
Связывает защищенный диапазон с существующим именованным диапазоном. Если именованный диапазон охватывает область, отличную от текущего защищенного диапазона, этот метод перемещает защиту, чтобы вместо этого охватить именованный диапазон. Именованный диапазон должен находиться на том же листе, что и текущий защищенный диапазон. Обратите внимание, что сценарии должны явно вызывать этот метод, чтобы связать защищенный диапазон с именованным диапазоном; вызова Range.protect()
для создания защиты от Range
, который является именованным диапазоном, без вызова set Range Name(rangeName)
недостаточно для их связывания. Однако создание защищенного диапазона из именованного диапазона в пользовательском интерфейсе Google Sheets автоматически связывает их.
// Protect a named range in a spreadsheet and log the name of the protected // range. const ss = SpreadsheetApp.getActive(); const range = ss.getRange('A1:B10'); const 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.
Параметры
Имя | Тип | Описание |
---|---|---|
range Name | String | Имя именованного диапазона, который необходимо защитить. |
Возвращаться
Protection
— объект, представляющий настройки защиты, для цепочки
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
set Unprotected Ranges(ranges)
Снимает защиту с данного массива диапазонов внутри защищенного листа. Выдает исключение, если объект Protection
соответствует защищенному диапазону, а не защищенному листу, или если какой-либо из диапазонов не находится на защищенном листе. Чтобы изменить незащищенные диапазоны, установите новый массив диапазонов; чтобы повторно защитить весь лист, установите пустой массив.
// Protect the active sheet except B2:C5, then remove all other users from the // list of editors. const sheet = SpreadsheetApp.getActiveSheet(); const protection = sheet.protect().setDescription('Sample protected sheet'); const 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. const 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
set Warning Only(warningOnly)
Устанавливает, использует ли этот защищенный диапазон защиту «на основе предупреждений». Защита на основе предупреждений означает, что каждый пользователь может редактировать данные в области, за исключением того, что при редактировании отображается предупреждение с просьбой подтвердить редактирование. По умолчанию защищенные диапазоны или листы не основаны на предупреждениях. Чтобы проверить состояние предупреждения, используйте is Warning Only()
.
// 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());
Параметры
Имя | Тип | Описание |
---|---|---|
warning Only | Boolean |
Возвращаться
Protection
— объект, представляющий настройки защиты для цепочки.
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets