الوصول إلى النطاقات وأوراق البيانات المحمية وتعديلها يمكن أن يحمي النطاق المحمي إما نطاقًا ثابتًا
من الخلايا أو نطاقًا مُعنوَنًا. قد تتضمّن ورقة البيانات المحمية مناطق غير محمية. بالنسبة إلى
جداول البيانات التي تم إنشاؤها باستخدام الإصدار القديم من "جداول بيانات Google"، استخدِم فئة
بدلاً من ذلك.
Page
// 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 | Protection | تُضيف هذه الدالة المستخدم المحدّد إلى قائمة المحرِّرين للورقة أو النطاق المحميّين. |
add | Protection | تُضيف هذه الدالة المستخدم المحدّد إلى قائمة المحرِّرين للورقة أو النطاق المحميّين. |
add | Protection | تُضيف الصفيف المحدَّد من المستخدمين إلى قائمة المحرِّرين للورقة أو النطاق المحميَّين. |
add | Protection | تُضيف هذه الدالة الجمهور المستهدَف المحدّد كمحرِّر للنطاق المحمي. |
can | Boolean | يحدِّد ما إذا كان لدى جميع المستخدمين في النطاق الذي يملك جدول البيانات إذن بتعديل النطاق أو ورقة البيانات المحمية. |
can | Boolean | يحدِّد ما إذا كان لدى المستخدم الإذن بتعديل النطاق أو ورقة البيانات المحمية. |
get | String | تحصل على وصف النطاق أو الورقة المحمية. |
get | User[] | تحصل على قائمة المحرِّرين للنطاق أو الورقة المحمية. |
get | Protection | تحصل على نوع المنطقة المحمية، إما RANGE أو SHEET . |
get | Range | تحصل على النطاق المحمي. |
get | String | تحصل على اسم النطاق المحمي إذا كان مرتبطًا بنطاق مُعنوَن. |
get | Target | عرض أرقام تعريف شرائح الجمهور المستهدَفة التي يمكنها تعديل النطاق المحمي |
get | Range[] | تحصل على صفيف من النطاقات غير المحمية ضمن ورقة بيانات محمية. |
is | Boolean | لتحديد ما إذا كانت المنطقة المحمية تستخدم الحماية "المستندة إلى التحذيرات". |
remove() | void | تؤدي هذه العملية إلى إزالة حماية النطاق أو الورقة. |
remove | Protection | تزيل هذه الدالة المستخدم المحدّد من قائمة المحرِّرين للورقة أو النطاق المحميَين. |
remove | Protection | تزيل هذه الدالة المستخدم المحدّد من قائمة المحرِّرين للورقة أو النطاق المحميَين. |
remove | Protection | تزيل صفيف المستخدمين المحدَّد من قائمة المحرِّرين للورقة أو النطاق المحميَّين. |
remove | Protection | تزيل هذه الدالة الجمهور المستهدَف المحدَّد كمحرِّر للنطاق المحمي. |
set | Protection | لضبط وصف النطاق أو الورقة المحمية. |
set | Protection | لتحديد ما إذا كان لدى جميع المستخدمين في النطاق الذي يملك جدول البيانات إذن بتعديل النطاق أو ورقة البيانات المحمية. |
set | Protection | ربط النطاق المحمي بنطاق مُعنوَن حالي |
set | Protection | لتعديل النطاق المحمي |
set | Protection | ربط النطاق المحمي بنطاق مُعنوَن حالي |
set | Protection | تزيل الحماية من الصفيف المحدَّد من النطاقات ضمن ورقة محمية. |
set | 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 | 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 | String[] | صفيف من عناوين البريد الإلكتروني للمستخدمين المطلوب إضافتهم |
الإرجاع
Protection
: العنصر الذي يمثّل إعدادات الحماية لتسلسلها
التفويض
تتطلّب النصوص البرمجية التي تستخدِم هذه الطريقة الحصول على إذن واحد أو أكثر من النطاقات التالية:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
add Target Audience(audienceId)
تُضيف هذه الدالة الجمهور المستهدَف المحدّد كمحرِّر للنطاق المحمي.
المعلمات
الاسم | النوع | الوصف |
---|---|---|
audience | 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
: نوع المنطقة المحمية، إما 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.protect()
لإنشاء حماية من Range
الذي يُصادف أنّه نطاق مُعنوَن بدون استدعاء set
. ومع ذلك، يؤدي إنشاء نطاق محمي من نطاق مُعنوَن في واجهة مستخدم "جداول بيانات 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
: صفيف أرقام تعريف الجماهير المستهدَفة
التفويض
تتطلّب النصوص البرمجية التي تستخدِم هذه الطريقة الحصول على إذن واحد أو أكثر من النطاقات التالية:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
get Unprotected Ranges()
تحصل على صفيف من النطاقات غير المحمية ضمن ورقة بيانات محمية. إذا كان Protection
العنصر يتوافق مع نطاق محمي بدلاً من ورقة محمية، تعرض هذه الطريقة صفيفًا
فارغًا. لتغيير النطاقات غير المحمية، استخدِم set
لضبط صفيف
جديد من النطاقات. ولإعادة حماية الجدول بأكمله، اضبط صفيفًا فارغًا.
// 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
.
// 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 | 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 | String[] | صفيف من عناوين البريد الإلكتروني للمستخدمين المطلوب إزالتهم |
الإرجاع
Protection
: العنصر الذي يمثّل إعدادات الحماية لربطها ببعضها
التفويض
تتطلّب النصوص البرمجية التي تستخدِم هذه الطريقة الحصول على إذن واحد أو أكثر من النطاقات التالية:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
remove Target Audience(audienceId)
تزيل هذه الدالة الجمهور المستهدَف المحدَّد كمحرِّر للنطاق المحمي.
المعلمات
الاسم | النوع | الوصف |
---|---|---|
audience | 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
، ليس
كافيًا لربطهما. ومع ذلك، يؤدي إنشاء نطاق محمي من نطاق مُعنوَن في واجهة مستخدم
"جداول بيانات 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 | Named | النطاق المُسمّى الحالي المطلوب ربطه بالنطاق المحمي |
الإرجاع
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
، ليس
كافيًا لربطهما. ومع ذلك، يؤدي إنشاء نطاق محمي من نطاق مُعنوَن في واجهة مستخدم
"جداول بيانات 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 | 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
.
// 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 | Boolean |
الإرجاع
Protection
: العنصر الذي يمثّل إعدادات الحماية لتسلسلها
التفويض
تتطلّب النصوص البرمجية التي تستخدِم هذه الطريقة الحصول على إذن واحد أو أكثر من النطاقات التالية:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets