Class Protection

حفاظت

به محدوده ها و برگه های محافظت شده دسترسی داشته باشید و آنها را اصلاح کنید. یک محدوده محافظت شده می تواند از یک محدوده ایستا از سلول ها یا یک محدوده نامگذاری شده محافظت کند. یک صفحه محافظت شده ممکن است شامل مناطق محافظت نشده باشد. برای صفحه‌گسترده‌هایی که با نسخه قدیمی‌تر «کاربرگ‌نگار Google» ایجاد شده‌اند، به جای آن از کلاس Page Protection استفاده کنید.

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

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

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

روش ها

روش نوع برگشت شرح مختصر
add Editor(emailAddress) Protection کاربر داده شده را به لیست ویرایشگرهای صفحه یا محدوده محافظت شده اضافه می کند.
add Editor(user) Protection کاربر داده شده را به لیست ویرایشگرهای صفحه یا محدوده محافظت شده اضافه می کند.
add Editors(emailAddresses) Protection آرایه داده شده از کاربران را به لیست ویرایشگرهای صفحه یا محدوده محافظت شده اضافه می کند.
add Target Audience(audienceId) Protection مخاطبین هدف مشخص شده را به عنوان ویرایشگر محدوده محافظت شده اضافه می کند.
can Domain Edit() Boolean تعیین می‌کند که آیا همه کاربران در دامنه‌ای که صفحه‌گسترده را دارند، مجوز ویرایش محدوده یا صفحه محافظت‌شده را دارند یا خیر.
can Edit() Boolean تعیین می کند که آیا کاربر مجوز ویرایش محدوده یا صفحه محافظت شده را دارد یا خیر.
get Description() String شرح محدوده یا برگه محافظت شده را دریافت می کند.
get Editors() User[] لیست ویرایشگرهای محدوده یا برگه محافظت شده را دریافت می کند.
get Protection Type() Protection Type نوع منطقه حفاظت شده، RANGE یا SHEET را دریافت می کند.
get Range() Range محدوده ای که محافظت می شود را دریافت می کند.
get Range Name() String اگر محدوده محافظت شده با محدوده نام‌گذاری شده مرتبط باشد، نام آن را دریافت می‌کند.
get Target Audiences() Target Audience[] شناسه‌های مخاطبین هدف را برمی‌گرداند که می‌توانند محدوده محافظت شده را ویرایش کنند.
get Unprotected Ranges() Range[] آرایه ای از محدوده های محافظت نشده را در یک صفحه محافظت شده دریافت می کند.
is Warning Only() Boolean تعیین می کند که آیا منطقه حفاظت شده از حفاظت "بر اساس هشدار" استفاده می کند یا خیر.
remove() void محدوده یا صفحه را از بین می برد.
remove Editor(emailAddress) Protection کاربر داده شده را از لیست ویرایشگرهای صفحه یا محدوده محافظت شده حذف می کند.
remove Editor(user) Protection کاربر داده شده را از لیست ویرایشگرهای صفحه یا محدوده محافظت شده حذف می کند.
remove Editors(emailAddresses) Protection آرایه داده شده از کاربران را از لیست ویرایشگرهای صفحه یا محدوده محافظت شده حذف می کند.
remove Target Audience(audienceId) Protection مخاطبین هدف مشخص شده را به عنوان ویرایشگر محدوده محافظت شده حذف می کند.
set Description(description) Protection شرح محدوده یا برگه محافظت شده را تنظیم می کند.
set Domain Edit(editable) Protection تعیین می‌کند که آیا همه کاربران در دامنه‌ای که صفحه‌گسترده را دارند، مجوز ویرایش محدوده یا صفحه محافظت‌شده را داشته باشند یا خیر.
set Named Range(namedRange) Protection محدوده محافظت شده را با یک محدوده با نام موجود مرتبط می کند.
set Range(range) Protection محدوده ای که محافظت می شود را تنظیم می کند.
set Range Name(rangeName) Protection محدوده محافظت شده را با یک محدوده با نام موجود مرتبط می کند.
set Unprotected Ranges(ranges) Protection آرایه محدوده داده شده در یک صفحه محافظت شده را از حالت محافظت خارج می کند.
set Warning Only(warningOnly) Protection تعیین می کند که آیا این محدوده محافظت شده از محافظت "مبتنی بر هشدار" استفاده می کند یا خیر.

مستندات دقیق

add Editor(emailAddress)

کاربر داده شده را به لیست ویرایشگرهای صفحه یا محدوده محافظت شده اضافه می کند. این روش به طور خودکار به کاربر اجازه ویرایش خود صفحه گسترده را نمی دهد. برای انجام این کار علاوه بر این، با Spreadsheet.addEditor(emailAddress) تماس بگیرید.

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

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

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

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

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

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

پارامترها

نام تایپ کنید توضیحات
email Address String آدرس ایمیل کاربر برای افزودن

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

add Editor(user)

کاربر داده شده را به لیست ویرایشگرهای صفحه یا محدوده محافظت شده اضافه می کند. این روش به طور خودکار به کاربر اجازه ویرایش خود صفحه گسترده را نمی دهد. برای انجام این کار علاوه بر این، با Spreadsheet.addEditor(user) تماس بگیرید.

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

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

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

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

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

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

پارامترها

نام تایپ کنید توضیحات
user User نمایشی از کاربر برای افزودن.

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

add Editors(emailAddresses)

آرایه داده شده از کاربران را به لیست ویرایشگرهای صفحه یا محدوده محافظت شده اضافه می کند. این روش به طور خودکار به کاربران اجازه ویرایش خود صفحه گسترده را نمی دهد. برای انجام این کار علاوه بر این، با Spreadsheet.addEditors(emailAddresses) تماس بگیرید.

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

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

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

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

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

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

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

پارامترها

نام تایپ کنید توضیحات
email Addresses String[] مجموعه ای از آدرس های ایمیل کاربران برای افزودن.

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

add Target Audience(audienceId)

مخاطبین هدف مشخص شده را به عنوان ویرایشگر محدوده محافظت شده اضافه می کند.

پارامترها

نام تایپ کنید توضیحات
audience Id String شناسه مخاطب هدف برای افزودن.

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

can Domain Edit()

تعیین می‌کند که آیا همه کاربران در دامنه‌ای که صفحه‌گسترده را دارند، مجوز ویرایش محدوده یا صفحه محافظت‌شده را دارند یا خیر. در صورتی که کاربر مجوز ویرایش محدوده یا برگه محافظت شده را نداشته باشد، یک استثنا ایجاد می کند.

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

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

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

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

بازگشت

Boolean - true اگر همه کاربران در دامنه ای که صفحه گسترده دارند مجوز ویرایش محدوده یا صفحه محافظت شده را داشته باشند. اگر این کار را نکنند false .

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

can Edit()

تعیین می کند که آیا کاربر مجوز ویرایش محدوده یا صفحه محافظت شده را دارد یا خیر. مالک صفحه‌گسترده همیشه می‌تواند محدوده‌ها و برگه‌های محافظت‌شده را ویرایش کند.

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

بازگشت

Boolean - true اگر کاربر اجازه ویرایش محدوده یا صفحه محافظت شده را داشته باشد. false اگر نه

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

get Description()

شرح محدوده یا برگه محافظت شده را دریافت می کند. اگر هیچ توضیحی تنظیم نشده باشد، این متد یک رشته خالی برمی گرداند.

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

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

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

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

بازگشت

String - شرح محدوده یا صفحه محافظت شده، یا یک رشته خالی در صورتی که شرحی تنظیم نشده باشد.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

get Editors()

لیست ویرایشگرهای محدوده یا برگه محافظت شده را دریافت می کند. در صورتی که کاربر مجوز ویرایش محدوده یا برگه محافظت شده را نداشته باشد، یک استثنا ایجاد می کند.

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

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

بازگشت

User[] - آرایه ای از کاربران با مجوز ویرایش محدوده یا برگه محافظت شده

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

get Protection Type()

نوع منطقه حفاظت شده، RANGE یا SHEET را دریافت می کند.

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

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

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

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

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

بازگشت

Protection Type - نوع منطقه حفاظت شده، RANGE یا SHEET .

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

get Range()

محدوده ای که محافظت می شود را دریافت می کند. اگر حفاظت به جای یک محدوده، روی صفحه اعمال شود، این روش محدوده ای را برمی گرداند که کل صفحه را در بر می گیرد.

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

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

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

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

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

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

بازگشت

Range - محدوده ای که محافظت می شود.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

get Range Name()

اگر محدوده محافظت شده با محدوده نام‌گذاری شده مرتبط باشد، نام آن را دریافت می‌کند. اگر حفاظت با محدوده نام‌گذاری‌شده مرتبط نباشد null برمی‌گرداند. توجه داشته باشید که اسکریپت ها باید صراحتاً set Range Name(rangeName) فراخوانی کنند تا یک محدوده محافظت شده را با یک محدوده نام گذاری شده مرتبط کند. فراخوانی Range.protect() برای ایجاد حفاظت از Range ای که اتفاقاً یک محدوده نام گذاری شده است، بدون فراخوانی set Range Name(rangeName) برای مرتبط کردن آنها کافی نیست. با این حال، ایجاد یک محدوده محافظت شده از یک محدوده نام‌گذاری شده در رابط کاربر کاربرگ‌نگار Google، آنها را به‌طور خودکار مرتبط می‌کند.

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

بازگشت

String - نام محدوده نام‌گذاری‌شده محافظت‌شده، یا اگر محدوده محافظت‌شده با محدوده نام‌گذاری‌شده مرتبط نباشد، null

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

get Target Audiences()

شناسه‌های مخاطبین هدف را برمی‌گرداند که می‌توانند محدوده محافظت شده را ویرایش کنند.

بازگشت

Target Audience[] - آرایه ای از شناسه های مخاطبان هدف.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

get Unprotected Ranges()

آرایه ای از محدوده های محافظت نشده را در یک صفحه محافظت شده دریافت می کند. اگر شی Protection به جای یک صفحه محافظت شده با یک محدوده محافظت شده مطابقت داشته باشد، این روش یک آرایه خالی را برمی گرداند. برای تغییر محدوده های محافظت نشده، set Unprotected Ranges(ranges) برای تنظیم یک آرایه جدید از محدوده ها استفاده کنید. برای محافظت مجدد از کل صفحه، یک آرایه خالی تنظیم کنید.

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

بازگشت

Range[] - آرایه ای از محدوده های محافظت نشده در یک صفحه محافظت شده

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

is Warning Only()

تعیین می کند که آیا منطقه حفاظت شده از حفاظت "بر اساس هشدار" استفاده می کند یا خیر. حفاظت مبتنی بر اخطار به این معنی است که هر کاربر می‌تواند داده‌ها را در منطقه ویرایش کند، به جز ویرایش، هشداری را که از کاربر می‌خواهد ویرایش را تأیید کند. به طور پیش‌فرض، محدوده‌ها یا برگه‌های محافظت‌شده مبتنی بر هشدار نیستند. برای تغییر وضعیت هشدار، set Warning Only(warningOnly) استفاده کنید.

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

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

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

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

const protectedSheetWarningStatus = sampleProtectedSheet.isWarningOnly();

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

بازگشت

Boolean - اگر محدوده یا صفحه محافظت شده فقط از حفاظت مبتنی بر هشدار استفاده می کند true .

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

remove()

محدوده یا صفحه را از بین می برد.

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

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

remove Editor(emailAddress)

کاربر داده شده را از لیست ویرایشگرهای صفحه یا محدوده محافظت شده حذف می کند. توجه داشته باشید که اگر کاربر عضو یک گروه Google است که مجوز ویرایش دارد، یا اگر همه کاربران در دامنه مجوز ویرایش داشته باشند، کاربر همچنان می‌تواند ناحیه محافظت شده را ویرایش کند. نه مالک صفحه گسترده و نه کاربر فعلی را نمی توان حذف کرد.

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

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

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

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

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

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

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

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

پارامترها

نام تایپ کنید توضیحات
email Address String آدرس ایمیل کاربر برای حذف.

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

remove Editor(user)

کاربر داده شده را از لیست ویرایشگرهای صفحه یا محدوده محافظت شده حذف می کند. توجه داشته باشید که اگر کاربر عضو یک گروه Google است که مجوز ویرایش دارد، یا اگر همه کاربران در دامنه مجوز ویرایش داشته باشند، کاربر همچنان می‌تواند منطقه محافظت شده را نیز ویرایش کند. نه مالک صفحه گسترده و نه کاربر فعلی را نمی توان حذف کرد.

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

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

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

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

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

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

پارامترها

نام تایپ کنید توضیحات
user User نمایشی از کاربر برای حذف.

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

remove Editors(emailAddresses)

آرایه داده شده از کاربران را از لیست ویرایشگرهای صفحه یا محدوده محافظت شده حذف می کند. توجه داشته باشید که اگر هر یک از کاربران عضو یک گروه Google هستند که مجوز ویرایش دارند، یا اگر همه کاربران در دامنه مجوز ویرایش داشته باشند، آن کاربران همچنان می‌توانند ناحیه محافظت شده را ویرایش کنند. نه مالک صفحه گسترده و نه کاربر فعلی را نمی توان حذف کرد.

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

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

پارامترها

نام تایپ کنید توضیحات
email Addresses String[] مجموعه ای از آدرس های ایمیل کاربران برای حذف.

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

remove Target Audience(audienceId)

مخاطبین هدف مشخص شده را به عنوان ویرایشگر محدوده محافظت شده حذف می کند.

پارامترها

نام تایپ کنید توضیحات
audience Id String شناسه مخاطب هدف برای حذف.

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

set Description(description)

شرح محدوده یا برگه محافظت شده را تنظیم می کند.

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

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

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

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

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

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

پارامترها

نام تایپ کنید توضیحات
description String شرح محدوده یا برگه حفاظت شده.

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

set Domain Edit(editable)

تعیین می‌کند که آیا همه کاربران در دامنه‌ای که صفحه‌گسترده را دارند، مجوز ویرایش محدوده یا صفحه محافظت‌شده را داشته باشند یا خیر. توجه داشته باشید که کاربرانی که مجوز ویرایش صریح دارند می‌توانند بدون در نظر گرفتن این تنظیم، ناحیه محافظت شده را ویرایش کنند. اگر صفحه‌گسترده به دامنه Google Workspace تعلق نداشته باشد (یعنی اگر متعلق به یک حساب gmail.com باشد)، یک استثنا ایجاد می‌کند.

پارامترها

نام تایپ کنید توضیحات
editable Boolean true اگر همه کاربران دامنه ای که صفحه گسترده دارند باید اجازه ویرایش محدوده یا صفحه محافظت شده را داشته باشند. false اگر نه

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

set Named Range(namedRange)

محدوده محافظت شده را با یک محدوده با نام موجود مرتبط می کند. اگر محدوده نام‌گذاری‌شده ناحیه متفاوتی از محدوده حفاظت‌شده فعلی را پوشش دهد، این روش حفاظت را برای پوشش محدوده نام‌گذاری‌شده منتقل می‌کند. محدوده نامگذاری شده باید در همان صفحه با محدوده حفاظت شده فعلی باشد. توجه داشته باشید که اسکریپت ها باید به طور صریح این متد را فراخوانی کنند تا یک محدوده محافظت شده را با یک محدوده نام گذاری شده مرتبط کنند. فراخوانی Range.protect() برای ایجاد حفاظت از Range ای که اتفاقاً یک محدوده نام گذاری شده است، بدون فراخوانی set Range Name(rangeName) برای مرتبط کردن آنها کافی نیست. با این حال، ایجاد یک محدوده محافظت شده از یک محدوده نام‌گذاری شده در رابط کاربر کاربرگ‌نگار Google، آنها را به‌طور خودکار مرتبط می‌کند.

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

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

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

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

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

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

پارامترها

نام تایپ کنید توضیحات
named Range Named Range محدوده نامگذاری شده موجود برای ارتباط با محدوده محافظت شده.

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

set Range(range)

محدوده ای که محافظت می شود را تنظیم می کند. اگر محدوده داده شده ناحیه متفاوتی از محدوده حفاظت شده فعلی را پوشش دهد، این روش به جای آن، حفاظت را برای پوشش محدوده جدید منتقل می کند.

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

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

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

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

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

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

پارامترها

نام تایپ کنید توضیحات
range Range محدوده جدید برای محافظت در برابر ویرایش ها.

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

set Range Name(rangeName)

محدوده محافظت شده را با یک محدوده با نام موجود مرتبط می کند. اگر محدوده نام‌گذاری‌شده ناحیه متفاوتی از محدوده حفاظت‌شده فعلی را پوشش دهد، این روش حفاظت را برای پوشش محدوده نام‌گذاری‌شده منتقل می‌کند. محدوده نامگذاری شده باید در همان صفحه با محدوده حفاظت شده فعلی باشد. توجه داشته باشید که اسکریپت ها باید به طور صریح این متد را فراخوانی کنند تا یک محدوده محافظت شده را با یک محدوده نام گذاری شده مرتبط کنند. فراخوانی Range.protect() برای ایجاد حفاظت از Range ای که اتفاقاً یک محدوده نام گذاری شده است، بدون فراخوانی set Range Name(rangeName) برای مرتبط کردن آنها کافی نیست. با این حال، ایجاد یک محدوده محافظت شده از یک محدوده نام‌گذاری شده در رابط کاربر کاربرگ‌نگار Google، آنها را به‌طور خودکار مرتبط می‌کند.

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

پارامترها

نام تایپ کنید توضیحات
range Name String نام محدوده نام‌گذاری‌شده برای محافظت.

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

set Unprotected Ranges(ranges)

آرایه محدوده داده شده در یک صفحه محافظت شده را از حالت محافظت خارج می کند. اگر شی Protection به جای صفحه محافظت شده با یک محدوده محافظت شده مطابقت داشته باشد یا هر یک از محدوده ها در صفحه محافظت شده نباشد، یک استثنا ایجاد می کند. برای تغییر محدوده های محافظت نشده، آرایه جدیدی از محدوده ها را تنظیم کنید. برای محافظت مجدد از کل صفحه، یک آرایه خالی تنظیم کنید.

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

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

پارامترها

نام تایپ کنید توضیحات
ranges Range[] آرایه محدوده هایی که در یک صفحه محافظت شده بدون محافظت باقی می مانند.

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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

set Warning Only(warningOnly)

تعیین می کند که آیا این محدوده محافظت شده از محافظت "مبتنی بر هشدار" استفاده می کند یا خیر. حفاظت مبتنی بر اخطار به این معنی است که هر کاربر می‌تواند داده‌ها را در منطقه ویرایش کند، به جز ویرایش، هشداری را که از کاربر می‌خواهد ویرایش را تأیید کند. به طور پیش‌فرض، محدوده‌ها یا برگه‌های محافظت‌شده مبتنی بر هشدار نیستند. برای بررسی وضعیت هشدار، is Warning Only() استفاده کنید.

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

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

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

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

پارامترها

نام تایپ کنید توضیحات
warning Only Boolean

بازگشت

Protection - شیئی که تنظیمات حفاظتی را برای زنجیر نشان می دهد.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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