Class Protection

Protection

Accédez aux plages et feuilles protégées, et modifiez-les. Une plage protégée peut protéger une plage statique de cellules ou une plage nommée. Une feuille protégée peut inclure des zones non protégées. Pour les feuilles de calcul créées avec l'ancienne version de Google Sheets, utilisez plutôt la 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éthodes

MéthodeType renvoyéBrève description
addEditor(emailAddress)ProtectionAjoute l'utilisateur donné à la liste des éditeurs de la feuille ou de la plage protégées.
addEditor(user)ProtectionAjoute l'utilisateur donné à la liste des éditeurs de la feuille ou de la plage protégées.
addEditors(emailAddresses)ProtectionAjoute le tableau d'utilisateurs donné à la liste des éditeurs de la feuille ou de la plage protégées.
addTargetAudience(audienceId)ProtectionAjoute l'audience cible spécifiée en tant qu'éditeur de la plage protégée.
canDomainEdit()BooleanDétermine si tous les utilisateurs du domaine propriétaire de la feuille de calcul sont autorisés à modifier la plage ou la feuille protégée.
canEdit()BooleanDétermine si l'utilisateur est autorisé à modifier la plage ou la feuille protégées.
getDescription()StringRécupère la description de la plage ou de la feuille protégées.
getEditors()User[]Récupère la liste des éditeurs de la plage protégée ou de la feuille.
getProtectionType()ProtectionTypeRécupère le type de la zone protégée (RANGE ou SHEET).
getRange()RangeRécupère la plage protégée.
getRangeName()StringRécupère le nom de la plage protégée si elle est associée à une plage nommée.
getTargetAudiences()TargetAudience[]Renvoie les ID des audiences cibles autorisées à modifier la plage protégée.
getUnprotectedRanges()Range[]Récupère un tableau de plages non protégées dans une feuille protégée.
isWarningOnly()BooleanDétermine si la zone protégée bénéficie d'une protection basée sur l'avertissement.
remove()voidDésactive la protection de la plage de cellules ou de la feuille.
removeEditor(emailAddress)ProtectionSupprime l'utilisateur indiqué de la liste des éditeurs pour la feuille ou la plage protégées.
removeEditor(user)ProtectionSupprime l'utilisateur indiqué de la liste des éditeurs pour la feuille ou la plage protégées.
removeEditors(emailAddresses)ProtectionSupprime le tableau d'utilisateurs indiqué de la liste des éditeurs pour la feuille ou la plage protégées.
removeTargetAudience(audienceId)ProtectionSupprime l'audience cible spécifiée en tant qu'éditeur de la plage protégée.
setDescription(description)ProtectionDéfinit la description de la plage ou de la feuille protégées.
setDomainEdit(editable)ProtectionDétermine si tous les utilisateurs du domaine propriétaire de la feuille de calcul sont autorisés à modifier la plage ou la feuille protégée.
setNamedRange(namedRange)ProtectionAssocie la plage protégée à une plage nommée existante.
setRange(range)ProtectionAjuste la plage protégée.
setRangeName(rangeName)ProtectionAssocie la plage protégée à une plage nommée existante.
setUnprotectedRanges(ranges)ProtectionDésactive la protection du tableau de plages donné dans une feuille protégée.
setWarningOnly(warningOnly)ProtectionDétermine si cette plage protégée utilise ou non une protection basée sur les avertissements.

Documentation détaillée

addEditor(emailAddress)

Ajoute l'utilisateur donné à la liste des éditeurs de la feuille ou de la plage protégées. Cette méthode n'autorise pas automatiquement l'utilisateur à modifier la feuille de calcul elle-même. Pour ce faire, appelez en plus 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());
}

Paramètres

NomTypeDescription
emailAddressStringAdresse e-mail de l'utilisateur à ajouter.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

addEditor(user)

Ajoute l'utilisateur donné à la liste des éditeurs de la feuille ou de la plage protégées. Cette méthode n'autorise pas automatiquement l'utilisateur à modifier la feuille de calcul elle-même. Pour ce faire, appelez en plus 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());
}

Paramètres

NomTypeDescription
userUserReprésentation de l'utilisateur à ajouter.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

addEditors(emailAddresses)

Ajoute le tableau d'utilisateurs donné à la liste des éditeurs de la feuille ou de la plage protégées. Cette méthode ne permet pas automatiquement aux utilisateurs de modifier la feuille de calcul elle-même. Pour ce faire, appelez également 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());
}

Paramètres

NomTypeDescription
emailAddressesString[]Tableau des adresses e-mail des utilisateurs à ajouter.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

addTargetAudience(audienceId)

Ajoute l'audience cible spécifiée en tant qu'éditeur de la plage protégée.

Paramètres

NomTypeDescription
audienceIdStringID de l'audience cible à ajouter.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

canDomainEdit()

Détermine si tous les utilisateurs du domaine propriétaire de la feuille de calcul sont autorisés à modifier la plage ou la feuille protégée. Génère une exception si l'utilisateur n'est pas autorisé à modifier la plage ou la feuille protégées.

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

Renvois

Boolean : true si tous les utilisateurs du domaine propriétaire de la feuille de calcul sont autorisés à modifier la plage ou la feuille protégée ; false dans le cas contraire.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

canEdit()

Détermine si l'utilisateur est autorisé à modifier la plage ou la feuille protégées. Le propriétaire de la feuille de calcul peut toujours modifier les plages et les feuilles protégées.

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

Renvois

Boolean : true si l'utilisateur est autorisé à modifier la plage ou la feuille protégées ; false dans le cas contraire

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

getDescription()

Récupère la description de la plage ou de la feuille protégées. Si aucune description n'est définie, cette méthode renvoie une chaîne vide.

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

Renvois

String : description de la plage ou de la feuille protégées, ou chaîne vide si aucune description n'est définie.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

getEditors()

Récupère la liste des éditeurs de la plage protégée ou de la feuille. Elle génère une exception si l'utilisateur n'est pas autorisé à modifier la plage ou la feuille protégées.

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

Renvois

User[] : tableau des utilisateurs autorisés à modifier la plage ou la feuille protégée

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

getProtectionType()

Récupère le type de la zone protégée (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());

Renvois

ProtectionType : type de zone protégée (RANGE ou SHEET).

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

getRange()

Récupère la plage protégée. Si la protection s'applique à la feuille au lieu d'une plage, cette méthode renvoie une plage qui couvre la feuille entière.

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

Renvois

Range : plage protégée.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

getRangeName()

Récupère le nom de la plage protégée si elle est associée à une plage nommée. Renvoie la valeur null si la protection n'est pas associée à une plage nommée. Notez que les scripts doivent appeler explicitement setRangeName(rangeName) pour associer une plage protégée à une plage nommée. L'appel de Range.protect() pour créer une protection à partir d'un Range qui se trouve être une plage nommée, sans appeler setRangeName(rangeName), ne suffit pas à les associer. Toutefois, la création d'une plage protégée à partir d'une plage nommée dans l'interface utilisateur de Google Sheets les associe automatiquement.

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

Renvois

String : nom de la plage nommée protégée, ou null si la plage protégée n'est pas associée à une plage nommée

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

getTargetAudiences()

Renvoie les ID des audiences cibles autorisées à modifier la plage protégée.

Renvois

TargetAudience[] : tableau des ID des audiences cibles.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

getUnprotectedRanges()

Récupère un tableau de plages non protégées dans une feuille protégée. Si l'objet Protection correspond à une plage protégée et non à une feuille protégée, cette méthode renvoie un tableau vide. Pour modifier les plages non protégées, définissez un nouveau tableau de plages à l'aide de setUnprotectedRanges(ranges). Pour reprotéger à nouveau la feuille entière, définissez un tableau vide.

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

Renvois

Range[] : tableau de plages non protégées dans une feuille protégée

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

isWarningOnly()

Détermine si la zone protégée bénéficie d'une protection basée sur l'avertissement. La protection basée sur les avertissements signifie que chaque utilisateur peut modifier des données dans la zone, sauf qu'une modification déclenche un avertissement l'invitant à confirmer la modification. Par défaut, les plages ou feuilles protégées ne contiennent pas d'avertissements. Pour passer à l'état d'avertissement, utilisez 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);

Renvois

Boolean : true si la plage protégée ou la feuille n'utilise qu'une protection basée sur les avertissements.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

remove()

Désactive la protection de la plage de cellules ou de la feuille.

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

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

removeEditor(emailAddress)

Supprime l'utilisateur indiqué de la liste des éditeurs pour la feuille ou la plage protégées. Notez que si l'utilisateur est membre d'un groupe Google disposant de droits de modification ou si tous les utilisateurs du domaine disposent de droits de modification, l'utilisateur peut toujours modifier la zone protégée. Ni le propriétaire de la feuille de calcul, ni l'utilisateur actuel ne peuvent être supprimés.

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

Paramètres

NomTypeDescription
emailAddressStringAdresse e-mail de l'utilisateur à supprimer.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

removeEditor(user)

Supprime l'utilisateur indiqué de la liste des éditeurs pour la feuille ou la plage protégées. Notez que si l'utilisateur est membre d'un groupe Google disposant de droits de modification ou si tous les utilisateurs du domaine disposent de droits de modification, l'utilisateur peut également modifier la zone protégée. Ni le propriétaire de la feuille de calcul, ni l'utilisateur actuel ne peuvent être supprimés.

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

Paramètres

NomTypeDescription
userUserReprésentation de l'utilisateur à supprimer.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

removeEditors(emailAddresses)

Supprime le tableau d'utilisateurs indiqué de la liste des éditeurs pour la feuille ou la plage protégées. Notez que si certains des utilisateurs sont membres d'un groupe Google disposant de droits de modification, ou si tous les utilisateurs du domaine disposent de droits de modification, ces utilisateurs ont toujours la possibilité de modifier la zone protégée. Ni le propriétaire de la feuille de calcul, ni l'utilisateur actuel ne peuvent être supprimés.

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

Paramètres

NomTypeDescription
emailAddressesString[]Tableau des adresses e-mail des utilisateurs à supprimer.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

removeTargetAudience(audienceId)

Supprime l'audience cible spécifiée en tant qu'éditeur de la plage protégée.

Paramètres

NomTypeDescription
audienceIdStringID de l'audience cible à supprimer.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

setDescription(description)

Définit la description de la plage ou de la feuille protégées.

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

Paramètres

NomTypeDescription
descriptionStringDescription de la plage ou de la feuille protégées.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

setDomainEdit(editable)

Détermine si tous les utilisateurs du domaine propriétaire de la feuille de calcul sont autorisés à modifier la plage ou la feuille protégée. Notez que tous les utilisateurs qui disposent d'une autorisation de modification explicite peuvent modifier la zone protégée, indépendamment de ce paramètre. Génère une exception si la feuille de calcul n'appartient pas à un domaine Google Workspace (si elle appartient à un compte gmail.com).

Paramètres

NomTypeDescription
editableBooleantrue si tous les utilisateurs du domaine propriétaire de la feuille de calcul doivent être autorisés à modifier la plage ou la feuille protégée ; false dans le cas contraire.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

setNamedRange(namedRange)

Associe la plage protégée à une plage nommée existante. Si la plage nommée couvre une zone différente de la plage protégée actuelle, cette méthode déplace la protection pour qu'elle couvre la plage nommée à la place. La plage nommée doit se trouver sur la même feuille que la plage protégée actuelle. Notez que les scripts doivent appeler explicitement cette méthode pour associer une plage protégée à une plage nommée. L'appel de Range.protect() pour créer une protection à partir d'un Range qui se trouve être une plage nommée, sans appeler de setRangeName(rangeName), ne suffit pas à les associer. Toutefois, la création d'une plage protégée à partir d'une plage nommée dans l'interface utilisateur de Google Sheets les associe automatiquement.

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

Paramètres

NomTypeDescription
namedRangeNamedRangePlage nommée existante à associer à la plage protégée.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

setRange(range)

Ajuste la plage protégée. Si la plage donnée couvre une zone différente de la plage protégée actuelle, cette méthode déplace la protection pour qu'elle couvre la nouvelle plage.

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

Paramètres

NomTypeDescription
rangeRangeNouvelle plage à protéger contre les modifications.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

setRangeName(rangeName)

Associe la plage protégée à une plage nommée existante. Si la plage nommée couvre une zone différente de la plage protégée actuelle, cette méthode déplace la protection pour qu'elle couvre la plage nommée à la place. La plage nommée doit se trouver sur la même feuille que la plage protégée actuelle. Notez que les scripts doivent appeler explicitement cette méthode pour associer une plage protégée à une plage nommée. L'appel de Range.protect() pour créer une protection à partir d'un Range qui se trouve être une plage nommée, sans appeler de setRangeName(rangeName), ne suffit pas à les associer. Toutefois, la création d'une plage protégée à partir d'une plage nommée dans l'interface utilisateur de Google Sheets les associe automatiquement.

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

Paramètres

NomTypeDescription
rangeNameStringNom de la plage nommée à protéger.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

setUnprotectedRanges(ranges)

Désactive la protection du tableau de plages donné dans une feuille protégée. La fonction renvoie une exception si l'objet Protection correspond à une plage protégée au lieu d'une feuille protégée ou si l'une des plages ne se trouve pas sur la feuille protégée. Pour modifier les plages non protégées, définissez un nouveau tableau de plages. Pour protéger à nouveau la feuille entière, définissez un tableau vide.

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

Paramètres

NomTypeDescription
rangesRange[]Tableau des plages à laisser non protégées dans une feuille protégée.

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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

setWarningOnly(warningOnly)

Détermine si cette plage protégée utilise ou non une protection basée sur les avertissements. La protection basée sur les avertissements signifie que chaque utilisateur peut modifier des données dans la zone, sauf que la modification déclenche un avertissement l'invitant à confirmer la modification. Par défaut, les plages ou feuilles protégées ne sont pas soumises à des avertissements. Pour vérifier l'état de l'avertissement, utilisez 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());

Paramètres

NomTypeDescription
warningOnlyBoolean

Renvois

Protection : objet représentant les paramètres de protection, pour le chaînage.

Autorisation

Les scripts qui utilisent cette méthode nécessitent une autorisation associée à un ou plusieurs des champs d'application suivants:

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