Class Protection

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
الحماية

الوصول إلى النطاقات والأوراق المحمية وتعديلها يمكن للنطاق المحمي حماية نطاق ثابت من الخلايا أو نطاق مُعنون. قد تتضمن ورقة البيانات مناطق غير محمية. بالنسبة إلى جداول البيانات التي تم إنشاؤها باستخدام الإصدار القديم من"جداول بيانات Google"، يمكنك استخدام الفئة 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).

المعلّمات

الاسمالنوعالوصف
emailAddressStringعنوان البريد الإلكتروني للمستخدم المطلوب إضافته.

تذكرة ذهاب وعودة

Protection: العنصر الذي يمثّل إعدادات الحماية، للسلسلة

التفويض

تتطلب النصوص البرمجية التي تستخدم هذه الطريقة تفويضًا مع واحد أو أكثر من النطاقات التالية:

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

addEditor(user)

إضافة مستخدم معيّن إلى قائمة أدوات تحرير الورقة أو النطاق المحمي. ولا تمنح هذه الطريقة المستخدم تلقائيًا إذنًا لتعديل جدول البيانات نفسه، ولتنفيذ ذلك، يمكنك استدعاء Spreadsheet.addEditor(user).

المعلّمات

الاسمالنوعالوصف
userUserتمثيل للمستخدم لإضافته.

تذكرة ذهاب وعودة

Protection: العنصر الذي يمثّل إعدادات الحماية، للسلسلة

التفويض

تتطلب النصوص البرمجية التي تستخدم هذه الطريقة تفويضًا مع واحد أو أكثر من النطاقات التالية:

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

addEditors(emailAddresses)

لإضافة صفيف معيّن من المستخدمين إلى قائمة أدوات تحرير الورقة أو النطاق المحمي. ولا تمنح هذه الطريقة المستخدمين تلقائيًا إذنًا لتعديل جدول البيانات نفسه، ولتنفيذ ذلك، اطلب Spreadsheet.addEditors(emailAddresses).

المعلّمات

الاسمالنوعالوصف
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()

تحدد ما إذا كان لدى جميع المستخدمين في النطاق الذي يملك جدول البيانات إذنًا لتعديل النطاق أو الورقة المحمية. ويتم طرح استثناء إذا لم يكن لدى المستخدم إذن بتعديل النطاق أو ورقة البيانات المحمية.

تذكرة ذهاب وعودة

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

الحصول على وصف النطاق المحمي أو ورقة البيانات المحمية. في حال عدم ضبط وصف، ستعرض هذه الطريقة سلسلة فارغة.

تذكرة ذهاب وعودة

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.

تذكرة ذهاب وعودة

ProtectionType — نوع المنطقة المحمية، إما RANGE أو SHEET

التفويض

تتطلب النصوص البرمجية التي تستخدم هذه الطريقة تفويضًا مع واحد أو أكثر من النطاقات التالية:

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

getRange()

الحصول على النطاق المحمي. إذا تم تطبيق الحماية على ورقة البيانات بدلاً من نطاقها، ستعرض هذه الطريقة نطاقًا يمتد للورقة الكاملة.

تذكرة ذهاب وعودة

Range - النطاق المحمي

التفويض

تتطلب النصوص البرمجية التي تستخدم هذه الطريقة تفويضًا مع واحد أو أكثر من النطاقات التالية:

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

getRangeName()

تحصل على اسم النطاق المحمي إذا كان مرتبطًا بنطاق مُعنون. عرض null إذا لم تكن الحماية مرتبطة بنطاق مُعنون. تجدر الإشارة إلى أنّ النصوص البرمجية يجب أن تطلب صراحةً setRangeName(rangeName) لربط نطاق محمي بنطاق مُسمّى. ولا يكفي استدعاء Range.protect() لإنشاء حماية من Range الذي يُفترض أن يكون نطاقًا مُعنونًا، بدون طلب setRangeName(rangeName). ولكن إنشاء نطاق محمي من نطاق مُعنون في واجهة مستخدم "جداول بيانات Google" يتم ربطه تلقائيًا.

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

تذكرة ذهاب وعودة

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" لديه إذن التعديل، أو إذا كان جميع المستخدمين في النطاق لديهم إذن التعديل، سيظل بإمكان المستخدم تعديل المنطقة المحمية. ولا يمكن إزالة مالك جدول البيانات أو المستخدم الحالي.

المعلّمات

الاسمالنوعالوصف
emailAddressStringعنوان البريد الإلكتروني للمستخدم المطلوب إزالته.

تذكرة ذهاب وعودة

Protection: العنصر الذي يمثّل إعدادات الحماية، للسلسلة

التفويض

تتطلب النصوص البرمجية التي تستخدم هذه الطريقة تفويضًا مع واحد أو أكثر من النطاقات التالية:

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

removeEditor(user)

إزالة المستخدم المحدد من قائمة محرري الورقة المحمية أو النطاق. يُرجى ملاحظة أنّه إذا كان المستخدم عضوًا في إحدى "مجموعات Google" لديه إذن تعديل أو إذا كان لدى جميع المستخدمين في النطاق إذن تعديل، سيظل بإمكان المستخدم تعديل المنطقة المحمية أيضًا. ولا يمكن إزالة مالك جدول البيانات أو المستخدم الحالي.

المعلّمات

الاسمالنوعالوصف
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)

لضبط وصف النطاق المحمي أو الورقة.

المعلّمات

الاسمالنوعالوصف
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" إلى ربطه تلقائيًا.

المعلّمات

الاسمالنوعالوصف
namedRangeNamedRangeالنطاق المُسمّى الحالي لربطه بالنطاق المحمي.

تذكرة ذهاب وعودة

Protection: العنصر الذي يمثّل إعدادات الحماية، للسلسلة

التفويض

تتطلب النصوص البرمجية التي تستخدم هذه الطريقة تفويضًا مع واحد أو أكثر من النطاقات التالية:

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

setRange(range)

لضبط النطاق المحمي. وإذا كان النطاق المحدّد يغطي منطقة مختلفة عن النطاق المحمي الحالي، تنقل هذه الطريقة الحماية لتغطية النطاق الجديد بدلاً من ذلك.

المعلّمات

الاسمالنوعالوصف
rangeRangeالنطاق الجديد للحماية من التعديلات.

تذكرة ذهاب وعودة

Protection: العنصر الذي يمثّل إعدادات الحماية، للسلسلة

التفويض

تتطلب النصوص البرمجية التي تستخدم هذه الطريقة تفويضًا مع واحد أو أكثر من النطاقات التالية:

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

setRangeName(rangeName)

تربط النطاق المحمي بنطاق اسم حالي. إذا كان النطاق المُسمى يغطي منطقة مختلفة عن النطاق المحمي الحالي، تنقل هذه الطريقة الحماية لتغطية النطاق المُسمى بدلاً من ذلك. يجب أن يكون النطاق المُسمَّى في الورقة نفسها المُدرَجة في النطاق المحمي الحالي. تجدر الإشارة إلى أنّ النصوص البرمجية يجب أن تستدعي هذه الطريقة صراحةً لربط نطاق محمي بنطاق محدّد. واستدعاء Range.protect() لإنشاء حماية من نطاق Range يُطلق عليه نطاقًا مُسمّى، بدون استدعاء setRangeName(rangeName)، ليس كافيًا لربطه. ولكن يؤدي إنشاء نطاق محمي من نطاق مُعنون في واجهة مستخدم "جداول بيانات Google" إلى ربطه تلقائيًا.

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

المعلّمات

الاسمالنوعالوصف
warningOnlyBoolean

تذكرة ذهاب وعودة

Protection: العنصر الذي يمثّل إعدادات الحماية، للسلسلة.

التفويض

تتطلب النصوص البرمجية التي تستخدم هذه الطريقة تفويضًا مع واحد أو أكثر من النطاقات التالية:

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