Class Protection

Proteção

Acessar e modificar páginas e intervalos protegidos. Um intervalo protegido pode proteger um intervalo estático de células ou um intervalo nomeado. Uma página protegida pode incluir regiões desprotegidas. Em planilhas criadas com a versão mais antiga do Planilhas Google, use a classe 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);
}

Métodos

MétodoTipo de retornoBreve descrição
addEditor(emailAddress)ProtectionAdiciona o usuário fornecido à lista de editores da página ou do intervalo protegido.
addEditor(user)ProtectionAdiciona o usuário fornecido à lista de editores da página ou do intervalo protegido.
addEditors(emailAddresses)ProtectionAdiciona a matriz de usuários especificada à lista de editores da página ou do intervalo protegido.
addTargetAudience(audienceId)ProtectionAdiciona o público-alvo especificado como um editor do intervalo protegido.
canDomainEdit()BooleanDetermina se todos os usuários no domínio proprietário da planilha têm permissão para editar o intervalo ou a página protegidos.
canEdit()BooleanDetermina se o usuário tem permissão para editar o intervalo ou a página protegidos.
getDescription()StringRecebe a descrição do intervalo ou página protegidos.
getEditors()User[]Extrai a lista de editores do intervalo ou da página protegidos.
getProtectionType()ProtectionTypeRecebe o tipo da área protegida, RANGE ou SHEET.
getRange()RangeExtrai o intervalo que está sendo protegido.
getRangeName()StringRecebe o nome do intervalo protegido se ele estiver associado a um intervalo nomeado.
getTargetAudiences()TargetAudience[]Retorna os códigos dos públicos-alvo que podem editar o intervalo protegido.
getUnprotectedRanges()Range[]Recebe uma matriz de intervalos desprotegidos dentro de uma página protegida.
isWarningOnly()BooleanDetermina se a área protegida está usando a proteção "baseada em avisos".
remove()voidDesprotege o intervalo ou a página.
removeEditor(emailAddress)ProtectionRemove o usuário especificado da lista de editores da página ou do intervalo protegido.
removeEditor(user)ProtectionRemove o usuário especificado da lista de editores da página ou do intervalo protegido.
removeEditors(emailAddresses)ProtectionRemove a matriz de usuários especificada da lista de editores da página ou do intervalo protegido.
removeTargetAudience(audienceId)ProtectionRemove o público-alvo especificado como um editor do intervalo protegido.
setDescription(description)ProtectionDefine a descrição do intervalo ou página protegidos.
setDomainEdit(editable)ProtectionDefine se todos os usuários no domínio proprietário da planilha têm permissão para editar o intervalo ou a página protegidos.
setNamedRange(namedRange)ProtectionAssocia o intervalo protegido a um intervalo nomeado já existente.
setRange(range)ProtectionAjusta o intervalo que está sendo protegido.
setRangeName(rangeName)ProtectionAssocia o intervalo protegido a um intervalo nomeado já existente.
setUnprotectedRanges(ranges)ProtectionDesprotege a matriz de intervalos fornecida dentro de uma página protegida.
setWarningOnly(warningOnly)ProtectionDefine se este intervalo protegido usa ou não a proteção "baseada em avisos".

Documentação detalhada

addEditor(emailAddress)

Adiciona o usuário fornecido à lista de editores da página ou do intervalo protegido. Esse método não concede automaticamente ao usuário permissão para editar a planilha. Para fazer isso, chame 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());
}

Parâmetros

NomeTipoDescrição
emailAddressStringO endereço de e-mail do usuário a ser adicionado.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addEditor(user)

Adiciona o usuário fornecido à lista de editores da página ou do intervalo protegido. Esse método não concede automaticamente ao usuário permissão para editar a planilha. Para fazer isso, chame 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());
}

Parâmetros

NomeTipoDescrição
userUserUma representação do usuário a ser adicionado.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addEditors(emailAddresses)

Adiciona a matriz de usuários especificada à lista de editores da página ou do intervalo protegido. Esse método não dá automaticamente aos usuários permissão para editar a planilha em si. Para fazer isso, chame 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());
}

Parâmetros

NomeTipoDescrição
emailAddressesString[]Uma matriz de endereços de e-mail dos usuários a serem adicionados.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addTargetAudience(audienceId)

Adiciona o público-alvo especificado como um editor do intervalo protegido.

Parâmetros

NomeTipoDescrição
audienceIdStringO ID do público-alvo a ser adicionado.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

canDomainEdit()

Determina se todos os usuários no domínio proprietário da planilha têm permissão para editar o intervalo ou a página protegidos. Lança uma exceção se o usuário não tiver permissão para editar o intervalo ou a página protegidos.

// 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());

Retorno

Boolean: true se todos os usuários no domínio proprietários da planilha tiverem permissão para editar o intervalo ou a página protegidos. false se eles não tiverem.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

canEdit()

Determina se o usuário tem permissão para editar o intervalo ou a página protegidos. O proprietário da planilha sempre pode editar páginas e intervalos protegidos.

// 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();
  }
}

Retorno

Boolean: true se o usuário tiver permissão para editar o intervalo ou a página protegidos. false se não tiver.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getDescription()

Recebe a descrição do intervalo ou página protegidos. Se nenhuma descrição for definida, esse método retornará uma string vazia.

// 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);

Retorno

String: a descrição do intervalo ou página protegido ou uma string vazia se nenhuma descrição for definida.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getEditors()

Extrai a lista de editores do intervalo ou da página protegidos. Lança uma exceção se o usuário não tiver permissão para editar o intervalo ou a página protegidos.

// 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);
}

Retorno

User[]: uma matriz de usuários com permissão para editar o intervalo ou a página protegidos.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getProtectionType()

Recebe o tipo da área protegida, RANGE ou 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());

Retorno

ProtectionType: o tipo de área protegida, RANGE ou SHEET.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getRange()

Extrai o intervalo que está sendo protegido. Se a proteção se aplicar à página em vez de um intervalo, esse método vai retornar um intervalo que abrange toda a página.

// 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());

Retorno

Range: o intervalo que está sendo protegido.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getRangeName()

Recebe o nome do intervalo protegido se ele estiver associado a um intervalo nomeado. Retorna null se a proteção não estiver associada a um intervalo nomeado. Os scripts precisam chamar setRangeName(rangeName) explicitamente para associar um intervalo protegido a um intervalo nomeado. Chamar Range.protect() para criar uma proteção de um Range que é um intervalo nomeado, sem chamar setRangeName(rangeName), não é suficiente para associá-los. No entanto, quando um intervalo protegido é criado a partir de um intervalo nomeado na interface do Planilhas Google, esse intervalo é associado automaticamente.

// 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.

Retorno

String: o nome do intervalo nomeado protegido ou null se o intervalo protegido não estiver associado a um intervalo nomeado

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getTargetAudiences()

Retorna os códigos dos públicos-alvo que podem editar o intervalo protegido.

Retorno

TargetAudience[]: uma matriz dos IDs dos públicos-alvo.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getUnprotectedRanges()

Recebe uma matriz de intervalos desprotegidos dentro de uma página protegida. Se o objeto Protection corresponder a um intervalo protegido em vez de uma página protegida, esse método vai retornar uma matriz vazia. Para alterar os intervalos desprotegidos, use setUnprotectedRanges(ranges) para definir uma nova matriz de intervalos. Para proteger novamente a página inteira, defina uma matriz vazia.

// 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);

Retorno

Range[]: uma matriz de intervalos desprotegidos dentro de uma página protegida.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

isWarningOnly()

Determina se a área protegida está usando a proteção "baseada em avisos". A proteção baseada em avisos significa que todos os usuários podem editar dados na área, mas a edição envia um aviso solicitando que o usuário confirme a edição. Por padrão, páginas ou intervalos protegidos não são baseados em avisos. Para mudar para o estado de aviso, use 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);

Retorno

Boolean: true se o intervalo ou a página protegidos usar apenas a proteção baseada em avisos.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

remove()

Desprotege o intervalo ou a página.

// 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();
}

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeEditor(emailAddress)

Remove o usuário especificado da lista de editores da página ou do intervalo protegido. Se o usuário for membro de um Grupo do Google com permissão para edição ou todos os usuários do domínio tiverem essa permissão, ele ainda poderá editar a área protegida. Nem o proprietário da planilha nem o usuário atual podem ser removidos.

// 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());
}

Parâmetros

NomeTipoDescrição
emailAddressStringO endereço de e-mail do usuário a ser removido.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeEditor(user)

Remove o usuário especificado da lista de editores da página ou do intervalo protegido. Observe que, se o usuário for membro de um Grupo do Google com permissão para edição ou todos os usuários do domínio tiverem essa permissão, ele também poderá editar a área protegida. Nem o proprietário da planilha nem o usuário atual podem ser removidos.

// 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());
}

Parâmetros

NomeTipoDescrição
userUserUma representação do usuário a ser removido.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeEditors(emailAddresses)

Remove a matriz de usuários especificada da lista de editores da página ou do intervalo protegido. Se algum usuário for membro de um Grupo do Google com permissão para edição ou todos os usuários do domínio tiverem essa permissão, eles ainda poderão editar a área protegida. Não é possível remover o proprietário da planilha nem o usuário atual.

// 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);
}

Parâmetros

NomeTipoDescrição
emailAddressesString[]Uma matriz de endereços de e-mail dos usuários a serem removidos.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeTargetAudience(audienceId)

Remove o público-alvo especificado como um editor do intervalo protegido.

Parâmetros

NomeTipoDescrição
audienceIdStringO ID do público-alvo a ser removido.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setDescription(description)

Define a descrição do intervalo ou página protegidos.

// 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);

Parâmetros

NomeTipoDescrição
descriptionStringA descrição do intervalo ou página protegidos.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setDomainEdit(editable)

Define se todos os usuários no domínio proprietário da planilha têm permissão para editar o intervalo ou a página protegidos. Qualquer usuário com permissão explícita para edição pode editar a área protegida, independente dessa configuração. Lança uma exceção se a planilha não pertencer a um domínio do Google Workspace (ou seja, se pertencer a uma conta do gmail.com).

Parâmetros

NomeTipoDescrição
editableBooleantrue se todos os usuários no domínio proprietários da planilha tiverem permissão para editar a página ou intervalo protegido. Caso contrário, false.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setNamedRange(namedRange)

Associa o intervalo protegido a um intervalo nomeado já existente. Se o intervalo nomeado cobrir uma área diferente do intervalo protegido atual, esse método moverá a proteção para cobrir o intervalo nomeado. O intervalo nomeado precisa estar na mesma página que o intervalo protegido atual. Os scripts precisam chamar esse método explicitamente para associar um intervalo protegido a um intervalo nomeado. Chamar Range.protect() para criar uma proteção de um Range que seja um intervalo nomeado, sem chamar setRangeName(rangeName), não é suficiente para associá-los. No entanto, quando um intervalo protegido é criado a partir de um intervalo nomeado na interface do Planilhas Google, ele é associado automaticamente.

// 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());

Parâmetros

NomeTipoDescrição
namedRangeNamedRangeO intervalo nomeado já existente a ser associado ao intervalo protegido.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setRange(range)

Ajusta o intervalo que está sendo protegido. Se o intervalo fornecido cobrir uma área diferente do intervalo protegido atual, esse método moverá a proteção para abranger o novo intervalo.

// 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());

Parâmetros

NomeTipoDescrição
rangeRangeO novo intervalo a ser protegido contra edições.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setRangeName(rangeName)

Associa o intervalo protegido a um intervalo nomeado já existente. Se o intervalo nomeado cobrir uma área diferente do intervalo protegido atual, esse método moverá a proteção para cobrir o intervalo nomeado. O intervalo nomeado precisa estar na mesma página que o intervalo protegido atual. Os scripts precisam chamar esse método explicitamente para associar um intervalo protegido a um intervalo nomeado. Chamar Range.protect() para criar uma proteção de um Range que seja um intervalo nomeado, sem chamar setRangeName(rangeName), não é suficiente para associá-los. No entanto, quando um intervalo protegido é criado a partir de um intervalo nomeado na interface do Planilhas Google, ele é associado automaticamente.

// 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.

Parâmetros

NomeTipoDescrição
rangeNameStringO nome do intervalo nomeado a ser protegido.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setUnprotectedRanges(ranges)

Desprotege a matriz de intervalos fornecida dentro de uma página protegida. Lança uma exceção se o objeto Protection corresponder a um intervalo protegido em vez de uma página protegida ou se qualquer um dos intervalos não estiver na página protegida. Para alterar os intervalos desprotegidos, defina uma nova matriz de intervalos. Para proteger novamente a página inteira, defina uma matriz vazia.

// 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);
}

Parâmetros

NomeTipoDescrição
rangesRange[]A matriz de intervalos que devem ser deixados desprotegidos em uma página protegida.

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setWarningOnly(warningOnly)

Define se este intervalo protegido usa ou não a proteção "baseada em avisos". A proteção baseada em avisos significa que todos os usuários podem editar dados na área, mas a edição solicita um aviso solicitando que o usuário confirme a edição. Por padrão, páginas ou intervalos protegidos não são baseados em avisos. Para conferir o estado de alerta, use 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());

Parâmetros

NomeTipoDescrição
warningOnlyBoolean

Retorno

Protection: o objeto que representa as configurações de proteção para encadeamento.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets