Class Protection

הגנה

לגשת לטווחים ולגיליונות מוגנים ולשנות אותם. טווח מוגן יכול להגן על טווח של תאים או טווח של תאים בעל שם. גיליון מוגן יכול לכלול אזורים לא מוגנים. עבור גיליונות אלקטרוניים שנוצרו בגרסה הקודמת של Google Sheets, צריך להשתמש בPageProtection במקום זאת.

// Protect range A1:B10, then remove all other users from the list of editors.
var ss = SpreadsheetApp.getActive();
var range = ss.getRange('A1:B10');
var protection = range.protect().setDescription('Sample protected range');

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}
// Remove all range protections in the spreadsheet that the user has permission to edit.
var ss = SpreadsheetApp.getActive();
var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
  var protection = protections[i];
  if (protection.canEdit()) {
    protection.remove();
  }
}
// Protect the active sheet, then remove all other users from the list of editors.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect().setDescription('Sample protected sheet');

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}

שיטות

שיטהסוג הערך המוחזרתיאור קצר
addEditor(emailAddress)Protectionמוסיפה את המשתמש הנתון לרשימת העורכים של הגיליון או הטווח המוגנים.
addEditor(user)Protectionמוסיפה את המשתמש הנתון לרשימת העורכים של הגיליון או הטווח המוגנים.
addEditors(emailAddresses)Protectionמחברת את מערך המשתמשים הנתון לרשימת העורכים של הגיליון או הטווח המוגנים.
addTargetAudience(audienceId)Protectionמוסיף את קהל היעד שצוין כעורך של הטווח המוגן.
canDomainEdit()Booleanהמדיניות קובעת אם לכל המשתמשים בדומיין שהגיליון האלקטרוני בבעלותו יש הרשאת עריכה את הטווח או הגיליון המוגנים.
canEdit()Booleanקובעת אם למשתמש יש הרשאה לערוך את הטווח או הגיליון המוגנים.
getDescription()Stringהפונקציה מקבלת את התיאור של הטווח או הגיליון המוגנים.
getEditors()User[]מקבלת את רשימת העורכים של הטווח או הגיליון המוגנים.
getProtectionType()ProtectionTypeהפונקציה מקבלת את הסוג של האזור המוגן, RANGE או SHEET.
getRange()Rangeהפונקציה מקבלת את הטווח המוגן.
getRangeName()Stringהפונקציה מקבלת את השם של הטווח המוגן אם הוא משויך לטווח תאים בעל שם.
getTargetAudiences()TargetAudience[]הפונקציה מחזירה את המזהים של משתמשי היעד שיכולים לערוך את הטווח המוגן.
getUnprotectedRanges()Range[]מקבלת מערך של טווחים לא מוגנים בתוך גיליון מוגן.
isWarningOnly()Booleanהמדיניות קובעת אם באזור המוגן משתמשים ב'מבוססת אזהרה' להגנה.
remove()voidמבטל את ההגנה על הטווח או הגיליון.
removeEditor(emailAddress)Protectionמסיר את המשתמש הנתון מרשימת העורכים של הגיליון או הטווח המוגנים.
removeEditor(user)Protectionמסיר את המשתמש הנתון מרשימת העורכים של הגיליון או הטווח המוגנים.
removeEditors(emailAddresses)Protectionמסירה את מערך המשתמשים הנתון מרשימת העורכים של הגיליון או הטווח המוגנים.
removeTargetAudience(audienceId)Protectionמסירה את קהל היעד שצוין כעורך של הטווח המוגן.
setDescription(description)Protectionמגדיר את התיאור של הטווח או הגיליון המוגנים.
setDomainEdit(editable)Protectionמגדירה אם לכל המשתמשים בדומיין שבבעלותו הגיליון האלקטרוני יש הרשאה לערוך את טווח או גיליון מוגנים.
setNamedRange(namedRange)Protectionמשייכת את הטווח המוגן לטווח קיים בעל שם.
setRange(range)Protectionמשנה את הטווח המוגן.
setRangeName(rangeName)Protectionמשייכת את הטווח המוגן לטווח קיים בעל שם.
setUnprotectedRanges(ranges)Protectionמבטל את ההגנה על מערך הטווחים הנתון בתוך גיליון מוגן.
setWarningOnly(warningOnly)Protectionמגדיר אם טווח התאים המוגן הזה משתמש ב'מבוסס-אזהרה' הגנה.

מסמכי תיעוד מפורטים

addEditor(emailAddress)

מוסיפה את המשתמש הנתון לרשימת העורכים של הגיליון או הטווח המוגנים. השיטה הזאת לא תעניק באופן אוטומטי למשתמש הרשאה לערוך את הגיליון האלקטרוני עצמו, לעשות את זה בנוסף, צריך להתקשר אל Spreadsheet.addEditor(emailAddress).

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Adds an editor to the spreadsheet using an email address.
// TODO(developer): Replace the email address with a valid email.
ss.addEditor('cloudysanfrancisco@gmail.com');

// Gets a sheet by its name and protects it.
const sheet = ss.getSheetByName('Sheet1');
const sampleProtectedSheet = sheet.protect();

// Adds an editor of the protected sheet using an email address.
// TODO(developer): Replace the email address with a valid email.
sampleProtectedSheet.addEditor('cloudysanfrancisco@gmail.com');

// Gets the editors of the protected sheet.
const editors = sampleProtectedSheet.getEditors();

// Logs the editors' email addresses to the console.
for (const editor of editors) {
  console.log(editor.getEmail());
}

פרמטרים

שםסוגתיאור
emailAddressStringכתובת האימייל של המשתמש להוספה.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

addEditor(user)

מוסיפה את המשתמש הנתון לרשימת העורכים של הגיליון או הטווח המוגנים. השיטה הזאת לא תעניק באופן אוטומטי למשתמש הרשאה לערוך את הגיליון האלקטרוני עצמו, לעשות את זה בנוסף, צריך להתקשר אל Spreadsheet.addEditor(user).

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Adds the active user as an editor of the protected sheet.
sampleProtectedSheet.addEditor(Session.getActiveUser());

// Gets the editors of the protected sheet.
const editors = sampleProtectedSheet.getEditors();

// Logs the editors' email addresses to the console.
for (const editor of editors) {
  console.log(editor.getEmail());
}

פרמטרים

שםסוגתיאור
userUserייצוג של המשתמש שצריך להוסיף.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

addEditors(emailAddresses)

מחברת את מערך המשתמשים הנתון לרשימת העורכים של הגיליון או הטווח המוגנים. הזה לא מעניקה למשתמשים הרשאה לערוך את הגיליון האלקטרוני עצמו באופן אוטומטי. לבצע צריך גם לקרוא ל-Spreadsheet.addEditors(emailAddresses).

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Creates variables for the email addresses to add as editors.
// TODO(developer): Replace the email addresses with valid ones.
const TEST_EMAIL_1 = 'cloudysanfrancisco@gmail.com';
const TEST_EMAIL_2 = 'baklavainthebalkans@gmail.com';

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Adds editors to the protected sheet using the email address variables.
sampleProtectedSheet.addEditors([TEST_EMAIL_1, TEST_EMAIL_2]);

// Gets the editors of the protected sheet.
const editors = sampleProtectedSheet.getEditors();

// Logs the editors' email addresses to the console.
for (const editor of editors) {
  console.log(editor.getEmail());
}

פרמטרים

שםסוגתיאור
emailAddressesString[]מערך כתובות אימייל של המשתמשים שרוצים להוסיף.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

addTargetAudience(audienceId)

מוסיף את קהל היעד שצוין כעורך של הטווח המוגן.

פרמטרים

שםסוגתיאור
audienceIdStringהמזהה של קהל היעד שצריך להוסיף.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

canDomainEdit()

המדיניות קובעת אם לכל המשתמשים בדומיין שהגיליון האלקטרוני בבעלותו יש הרשאת עריכה את הטווח או הגיליון המוגנים. גורם חריג אם למשתמש אין הרשאת עריכה את הטווח או הגיליון המוגנים.

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Logs whether domain users have permission to edit the protected sheet to the console.
console.log(sampleProtectedSheet.canDomainEdit());

חזרה

Booleantrue אם לכל המשתמשים בדומיין שהגיליון האלקטרוני בבעלותו יש הרשאה לערוך את הגיליון או הטווח המוגן. false אם לא.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

canEdit()

קובעת אם למשתמש יש הרשאה לערוך את הטווח או הגיליון המוגנים. הבעלים של הגיליון האלקטרוני תמיד יכול לערוך טווחים וגיליונות מוגנים.

// Remove all range protections in the spreadsheet that the user has permission to edit.
var ss = SpreadsheetApp.getActive();
var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
  var protection = protections[i];
  if (protection.canEdit()) {
    protection.remove();
  }
}

חזרה

Booleantrue אם למשתמש יש הרשאה לערוך את הטווח או הגיליון המוגנים. false אם לא

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

getDescription()

הפונקציה מקבלת את התיאור של הטווח או הגיליון המוגנים. אם לא הוגדר תיאור, השיטה הזו מחזירה מחרוזת ריקה.

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet and sets the description.
const sampleProtectedSheet = sheet.protect().setDescription('Sample sheet is protected');

// Gets the description of the protected sheet and logs it to the console.
const sampleProtectedSheetDescription = sampleProtectedSheet.getDescription();
console.log(sampleProtectedSheetDescription);

חזרה

String – התיאור של הטווח או הגיליון המוגנים, או מחרוזת ריקה אם אין תיאור מוגדרת.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

getEditors()

מקבלת את רשימת העורכים של הטווח או הגיליון המוגנים. מחריג חריג אם המשתמש אין הרשאה לערוך את הטווח או הגיליון המוגנים.

// Protect the active sheet, then remove all other users from the list of editors.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect().setDescription('Sample protected sheet');

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}

חזרה

User[] – מערך משתמשים עם הרשאה לערוך את הטווח או הגיליון המוגנים

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

getProtectionType()

הפונקציה מקבלת את הסוג של האזור המוגן, RANGE או SHEET.

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Gets the type of the protected area.
const protectionType = sampleProtectedSheet.getProtectionType();

// Logs 'SHEET'to the console since the type of the protected area is a sheet.
console.log(protectionType.toString());

חזרה

ProtectionType – סוג האזור המוגן, RANGE או SHEET.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

getRange()

הפונקציה מקבלת את הטווח המוגן. אם ההגנה חלה על הגיליון במקום על טווח, השיטה הזו מחזירה טווח שמתפרס על כל הגיליון.

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Gets the range 'A1:B10' of Sheet1.
const range = sheet.getRange('A1:B10');

// Makes cells A1:B10 a protected range.
const sampleProtectedRange = range.protect();

// Gets the protected ranges on the sheet.
const protections = sheet.getProtections(SpreadsheetApp.ProtectionType.RANGE);

// Logs the A1 notation of the first protected range on the sheet.
console.log(protections[0].getRange().getA1Notation());

חזרה

Range – הטווח המוגן.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

getRangeName()

הפונקציה מקבלת את השם של הטווח המוגן אם הוא משויך לטווח תאים בעל שם. הפונקציה מחזירה את הערך null אם ההגנה לא משויכת לטווח בעל שם. שימו לב שסקריפטים חייבים באופן מפורש קריאה ל-setRangeName(rangeName) כדי לשייך טווח מוגן לטווח בעל שם; שיחות Range.protect() כדי ליצור הגנה מפני Range טווח בעל שם, בלי לקרוא ל-setRangeName(rangeName), לא מספיק לשיוך אותם. עם זאת, יצירת טווח מוגן מטווח בעל שם בממשק המשתמש של Google Sheets משייכת אותם באופן אוטומטי.

// Protect a named range in a spreadsheet and log the name of the protected range.
var ss = SpreadsheetApp.getActive();
var range = ss.getRange('A1:B10');
var protection = range.protect();
ss.setNamedRange('Test', range);       // Create a named range.
protection.setRangeName('Test');       // Associate the protection with the named range.
Logger.log(protection.getRangeName()); // Verify the name of the protected range.

חזרה

String – השם של טווח התאים המוגן, או null אם הטווח המוגן אינו משויך לטווח תאים בעל שם

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

getTargetAudiences()

הפונקציה מחזירה את המזהים של משתמשי היעד שיכולים לערוך את הטווח המוגן.

חזרה

TargetAudience[] – מערך של המזהים של משתמשי היעד.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

getUnprotectedRanges()

מקבלת מערך של טווחים לא מוגנים בתוך גיליון מוגן. אם האובייקט Protection תואם לטווח מוגן במקום לגיליון מוגן, השיטה הזו מחזירה ערך ריק מערך. כדי לשנות את הטווחים הלא מוגנים, צריך להשתמש ב-setUnprotectedRanges(ranges) כדי להגדיר מערך חדש של טווחים; כדי להגן מחדש על כל הגיליון, מגדירים מערך ריק.

// Unprotect cells E2:F5 in addition to any other unprotected ranges in the protected sheet.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect();
var unprotected = protection.getUnprotectedRanges();
unprotected.push(sheet.getRange('E2:F5'));
protection.setUnprotectedRanges(unprotected);

חזרה

Range[] – מערך של טווחים לא מוגנים בתוך גיליון מוגן

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

isWarningOnly()

המדיניות קובעת אם באזור המוגן משתמשים ב'מבוססת אזהרה' הגנה. הגנה מבוססת-אזהרה כלומר, כל משתמש יכול לערוך את הנתונים באזור, מלבד עריכה של הודעת אזהרה כדי לאשר את העריכה. כברירת מחדל, טווחים או גיליונות מוגנים לא מבוססים על אזהרות. שפת תרגום שינוי למצב האזהרה – צריך להשתמש ב-setWarningOnly(warningOnly).

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit')

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Sets the warning status for the protected sheet as true.
sampleProtectedSheet.setWarningOnly(true);

const protectedSheetWarningStatus = sampleProtectedSheet.isWarningOnly();

// Logs the warning status of the protected sheet to the console.
console.log(protectedSheetWarningStatus);

חזרה

Booleantrue אם הטווח או הגיליון המוגנים באמצעות הגנה מבוססת-אזהרה בלבד.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

remove()

מבטל את ההגנה על הטווח או הגיליון.

// Remove all range protections in the spreadsheet that the user has permission to edit.
var ss = SpreadsheetApp.getActive();
var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
  var protection = protections[i];
  if (protection.canEdit()) {
    protection.remove();
  }
}
// Remove sheet protection from the active sheet, if the user has permission to edit it.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0];
if (protection && protection.canEdit()) {
  protection.remove();
}

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

removeEditor(emailAddress)

מסיר את המשתמש הנתון מרשימת העורכים של הגיליון או הטווח המוגנים. שימו לב שאם משתמש הוא חבר בקבוצה ב-Google עם הרשאת עריכה, או כל המשתמשים בדומיין יש הרשאת עריכה, המשתמש עדיין יוכל לערוך את האזור המוגן. לא הבעלים של הגיליון האלקטרוני או של המשתמש הנוכחי.

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Creates a variable for an email address.
// TODO(developer): Replace the email address with a valid one.
const TEST_EMAIL = 'baklavainthebalkans@gmail.com';

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Adds an editor to the protected sheet using the email address variable.
sampleProtectedSheet.addEditor(TEST_EMAIL);

// Removes the editor from the protected sheet using the email address variable.
sampleProtectedSheet.removeEditor(TEST_EMAIL);

// Gets the editors of the protected sheet.
const editors = sampleProtectedSheet.getEditors();

// Logs the editors' email addresses to the console.
for (const editor of editors) {
  console.log(editor.getEmail());
}

פרמטרים

שםסוגתיאור
emailAddressStringכתובת האימייל של המשתמש להסרה.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

removeEditor(user)

מסיר את המשתמש הנתון מרשימת העורכים של הגיליון או הטווח המוגנים. שימו לב שאם משתמש הוא חבר בקבוצה ב-Google עם הרשאת עריכה, או כל המשתמשים בדומיין יש הרשאת עריכה, למשתמש עדיין תהיה אפשרות לערוך את האזור המוגן. וגם או את הבעלים של הגיליון האלקטרוני או את המשתמש הנוכחי.

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Removes the active user from the editors of the protected sheet.
sampleProtectedSheet.removeEditor(Session.getActiveUser());

// Gets the editors of the protected sheet.
const editors = sampleProtectedSheet.getEditors();

// Logs the editors' email addresses to the console.
for (const editor of editors) {
  console.log(editor.getEmail());
}

פרמטרים

שםסוגתיאור
userUserייצוג של המשתמש שצריך להסיר.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

removeEditors(emailAddresses)

מסירה את מערך המשתמשים הנתון מרשימת העורכים של הגיליון או הטווח המוגנים. הערה: אם חלק מהמשתמשים הם חברים בקבוצה ב-Google ויש לו הרשאת עריכה, או אם כולם למשתמשים בדומיין יש הרשאת עריכה, המשתמשים האלה עדיין יכולים לערוך אזור. לא ניתן להסיר את הבעלים של הגיליון האלקטרוני וגם לא את המשתמש הנוכחי.

// Protect the active sheet, then remove all other users from the list of editors.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect().setDescription('Sample protected sheet');

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}

פרמטרים

שםסוגתיאור
emailAddressesString[]מערך כתובות אימייל של המשתמשים שיש להסיר.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

removeTargetAudience(audienceId)

מסירה את קהל היעד שצוין כעורך של הטווח המוגן.

פרמטרים

שםסוגתיאור
audienceIdStringהמזהה של קהל היעד להסרה.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

setDescription(description)

מגדיר את התיאור של הטווח או הגיליון המוגנים.

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets the sheet 'Sheet1' by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Sets the sheet description to 'Sheet1 is protected.'
sampleProtectedSheet.setDescription('Sheet1 is protected');

// Gets the description of the protected sheet.
const sampleProtectedSheetDescription = sampleProtectedSheet.getDescription();

// Logs the description of the protected sheet to the console.
console.log(sampleProtectedSheetDescription);

פרמטרים

שםסוגתיאור
descriptionStringתיאור הטווח או הגיליון המוגנים.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

setDomainEdit(editable)

מגדירה אם לכל המשתמשים בדומיין שבבעלותו הגיליון האלקטרוני יש הרשאה לערוך את טווח או גיליון מוגנים. כל המשתמשים שיש להם הרשאת עריכה מפורשת יכולים: לערוך את האזור המוגן ללא קשר להגדרה הזו. הפעולה גורמת לחריגה אם הגיליון האלקטרוני לא שייכים לדומיין של Google Workspace (כלומר, אם הדומיין נמצא בבעלות של חשבון gmail.com).

פרמטרים

שםסוגתיאור
editableBooleantrue אם כל המשתמשים בדומיין שהגיליון האלקטרוני בבעלותו צריכים להיות הרשאה לערוך את הטווח או הגיליון המוגנים, false אם לא.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

setNamedRange(namedRange)

משייכת את הטווח המוגן לטווח קיים בעל שם. אם טווח התאים בעל השם מכסה שונה מטווח התאים המוגן הנוכחי, השיטה הזו מעבירה את ההגנה כדי לכסות את טווח התאים בעל השם. טווח התאים בעל השם חייב להיות באותו גיליון כמו הטווח המוגן הנוכחי טווח. שים לב שהסקריפטים חייבים לקרוא לשיטה הזו באופן מפורש כדי לשייך טווח מוגן עם טווח תאים בעל שם; נשלחת קריאה אל Range.protect() כדי ליצור הגנה מפני Range שהוא טווח בעל שם, בלי לקרוא ל-setRangeName(rangeName), מספיק כדי לקשר ביניהם. אבל, יצירת טווח מוגן מטווח בעל שם הנתונים בממשק המשתמש של Google Sheets משייכים אותם באופן אוטומטי.

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Protects cells A1:D10 on Sheet1.
const sheet = ss.getSheetByName('Sheet1');
const protectedRange = sheet.getRange('A1:D10').protect();

// Logs the current protected range, A1:D10.
console.log(protectedRange.getRange().getA1Notation());

// Creates a named range for cells E1:J10 called 'NewRange.'
const newRange = sheet.getRange('E1:J10');
ss.setNamedRange('NewRange', newRange);
const namedRange = ss.getNamedRanges()[0];

// Updates the protected range to the named range, 'NewRange.'
// This updates the protected range on Sheet1 from A1:D10 to E1:J10.
protectedRange.setNamedRange(namedRange);

// Logs the updated protected range to the console.
console.log(protectedRange.getRange().getA1Notation());

פרמטרים

שםסוגתיאור
namedRangeNamedRangeטווח התאים בעל השם הקיים שיש לשייך לטווח המוגן.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

setRange(range)

משנה את הטווח המוגן. אם הטווח הנתון מכסה אזור שונה טווח התאים המוגן הנוכחי, השיטה הזו מעבירה את ההגנה כך שתכסה את הטווח החדש.

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Protects cells A1:D10 on Sheet1 of the spreadsheet.
const sheet = ss.getSheetByName('Sheet1');
const protectedRange = sheet.getRange('A1:D10').protect();

// Logs the original protected range, A1:D10, to the console.
console.log(protectedRange.getRange().getA1Notation());

// Gets the range E1:J10.
const newRange = sheet.getRange('E1:J10');

// Updates the protected range to E1:J10.
protectedRange.setRange(newRange);

// Logs the updated protected range to the console.
console.log(protectedRange.getRange().getA1Notation());

פרמטרים

שםסוגתיאור
rangeRangeהטווח החדש להגנה מפני עריכות.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

setRangeName(rangeName)

משייכת את הטווח המוגן לטווח קיים בעל שם. אם טווח התאים בעל השם מכסה שונה מטווח התאים המוגן הנוכחי, השיטה הזו מעבירה את ההגנה כדי לכסות את טווח התאים בעל השם. טווח התאים בעל השם חייב להיות באותו גיליון כמו הטווח המוגן הנוכחי טווח. שים לב שהסקריפטים חייבים לקרוא לשיטה הזו באופן מפורש כדי לשייך טווח מוגן עם טווח תאים בעל שם; נשלחת קריאה אל Range.protect() כדי ליצור הגנה מפני Range שהוא טווח בעל שם, בלי לקרוא ל-setRangeName(rangeName), מספיק כדי לקשר ביניהם. אבל, יצירת טווח מוגן מטווח בעל שם הנתונים בממשק המשתמש של Google Sheets משייכים אותם באופן אוטומטי.

// Protect a named range in a spreadsheet and log the name of the protected range.
var ss = SpreadsheetApp.getActive();
var range = ss.getRange('A1:B10');
var protection = range.protect();
ss.setNamedRange('Test', range);       // Create a named range.
protection.setRangeName('Test');       // Associate the protection with the named range.
Logger.log(protection.getRangeName()); // Verify the name of the protected range.

פרמטרים

שםסוגתיאור
rangeNameStringהשם של טווח התאים בעל השם שצריך להגן.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

setUnprotectedRanges(ranges)

מבטל את ההגנה על מערך הטווחים הנתון בתוך גיליון מוגן. חריג חריג אם האובייקט Protection תואם לטווח מוגן במקום לגיליון מוגן, או אף אחד מהטווחים לא נמצא בגיליון המוגן. כדי לשנות את הטווחים הלא מוגנים, צריך להגדיר מערך של טווחים; כדי להגן מחדש על כל הגיליון, מגדירים מערך ריק.

// Protect the active sheet except B2:C5, then remove all other users from the list of editors.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect().setDescription('Sample protected sheet');
var unprotected = sheet.getRange('B2:C5');
protection.setUnprotectedRanges([unprotected]);

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}

פרמטרים

שםסוגתיאור
rangesRange[]מערך הטווחים שיש להשאיר לא מוגנים בתוך גיליון מוגן.

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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

setWarningOnly(warningOnly)

מגדיר אם טווח התאים המוגן הזה משתמש ב'מבוסס-אזהרה' הגנה. מבוססת אזהרה ההגנה פירושה שכל משתמש יכול לערוך נתונים באזור, מלבד עריכה של הודעת אזהרה ולבקש מהמשתמש לאשר את העריכה. כברירת מחדל, טווחים או גיליונות מוגנים לא מבוססת-אזהרה. כדי לבדוק את מצב האזהרה, צריך להשתמש בפונקציה isWarningOnly().

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets the sheet 'Sheet1' by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet and sets the protection to warning-based.
const sampleProtectedSheet = sheet.protect().setWarningOnly(true);

// Logs whether the protected sheet is warning-based to the console.
console.log(sampleProtectedSheet.isWarningOnly());

פרמטרים

שםסוגתיאור
warningOnlyBoolean

חזרה

Protection – האובייקט שמייצג את הגדרות ההגנה, לשרשור.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

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