เข้าถึงและแก้ไขช่วงและชีตที่มีการป้องกัน ช่วงที่ป้องกันไว้สามารถป้องกันแบบคงที่
ช่วงของเซลล์หรือช่วงที่ตั้งชื่อแล้ว ชีตที่ป้องกันไว้อาจมีส่วนที่ไม่ได้รับการปกป้องด้วย สำหรับ
สเปรดชีตที่สร้างด้วย 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)
// 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()); }
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
emailAddress | String | อีเมลของผู้ใช้ที่ต้องการเพิ่ม |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addEditor(user)
เพิ่มผู้ใช้ที่กำหนดลงในรายการเครื่องมือแก้ไขสำหรับชีตหรือช่วงที่มีการป้องกัน วิธีนี้ทำ
ไม่ให้สิทธิ์ผู้ใช้ในการแก้ไขสเปรดชีตโดยอัตโนมัติ จะทำแบบนั้นใน
นอกจากนี้ โปรดโทรหา Spreadsheet.addEditor(user)
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Adds the active user as an editor of the protected sheet. sampleProtectedSheet.addEditor(Session.getActiveUser()); // Gets the editors of the protected sheet. const editors = sampleProtectedSheet.getEditors(); // Logs the editors' email addresses to the console. for (const editor of editors) { console.log(editor.getEmail()); }
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
user | User | การนำเสนอของผู้ใช้ที่จะเพิ่ม |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addEditors(emailAddresses)
เพิ่มอาร์เรย์ของผู้ใช้ที่ระบุลงในรายการเครื่องมือแก้ไขสำหรับชีตหรือช่วงที่มีการป้องกัน ช่วงเวลานี้
ไม่ได้ให้สิทธิ์ผู้ใช้ในการแก้ไขสเปรดชีตโดยอัตโนมัติ สิ่งที่ต้องทำ
โทรหา Spreadsheet.addEditors(emailAddresses)
ด้วย
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Creates variables for the email addresses to add as editors. // TODO(developer): Replace the email addresses with valid ones. const TEST_EMAIL_1 = 'cloudysanfrancisco@gmail.com'; const TEST_EMAIL_2 = 'baklavainthebalkans@gmail.com'; // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Adds editors to the protected sheet using the email address variables. sampleProtectedSheet.addEditors([TEST_EMAIL_1, TEST_EMAIL_2]); // Gets the editors of the protected sheet. const editors = sampleProtectedSheet.getEditors(); // Logs the editors' email addresses to the console. for (const editor of editors) { console.log(editor.getEmail()); }
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
emailAddresses | String[] | อาร์เรย์อีเมลของผู้ใช้ที่จะเพิ่ม |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addTargetAudience(audienceId)
เพิ่มกลุ่มเป้าหมายที่ระบุเป็นตัวแก้ไขของช่วงที่มีการป้องกัน
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
audienceId | String | รหัสของกลุ่มเป้าหมายที่จะเพิ่ม |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
canDomainEdit()
กำหนดว่าผู้ใช้ทุกคนในโดเมนซึ่งเป็นเจ้าของสเปรดชีตมีสิทธิ์แก้ไขหรือไม่ ช่วงหรือชีตที่ป้องกันไว้ มีข้อยกเว้นหากผู้ใช้ไม่มีสิทธิ์แก้ไข ช่วงหรือชีตที่ป้องกันไว้
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Logs whether domain users have permission to edit the protected sheet to the console. console.log(sampleProtectedSheet.canDomainEdit());
รีเทิร์น
Boolean
— true
หากผู้ใช้ทุกคนในโดเมนที่เป็นเจ้าของสเปรดชีตมีสิทธิ์
แก้ไขช่วงหรือชีตที่ป้องกันไว้ false
หากไม่เป็นเช่นนั้น
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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(); } }
รีเทิร์น
Boolean
— true
หากผู้ใช้มีสิทธิ์แก้ไขช่วงหรือชีตที่มีการป้องกัน false
หากไม่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDescription()
รับคำอธิบายของช่วงหรือชีตที่มีการป้องกัน วิธีนี้หากไม่ได้ตั้งคำอธิบายไว้ แสดงผลสตริงว่าง
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet and sets the description. const sampleProtectedSheet = sheet.protect().setDescription('Sample sheet is protected'); // Gets the description of the protected sheet and logs it to the console. const sampleProtectedSheetDescription = sampleProtectedSheet.getDescription(); console.log(sampleProtectedSheetDescription);
รีเทิร์น
String
— คำอธิบายของช่วงหรือชีตที่มีการป้องกัน หรือสตริงว่างเปล่าหากไม่มีคำอธิบาย
ได้รับการตั้งค่าแล้ว
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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[]
— อาร์เรย์ของผู้ใช้ที่มีสิทธิ์แก้ไขช่วงหรือชีตที่มีการป้องกัน
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getProtectionType()
รับข้อมูลประเภทของพื้นที่คุ้มครอง ไม่ว่าจะเป็น RANGE
หรือ SHEET
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Gets the type of the protected area. const protectionType = sampleProtectedSheet.getProtectionType(); // Logs 'SHEET'to the console since the type of the protected area is a sheet. console.log(protectionType.toString());
รีเทิร์น
ProtectionType
— ประเภทของพื้นที่คุ้มครอง ซึ่งอาจเป็น RANGE
หรือ SHEET
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getRange()
รับช่วงที่มีการป้องกัน หากใช้การป้องกันกับชีตแทนที่จะเป็น วิธีนี้จะแสดงช่วงที่ครอบคลุมทั้งชีต
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets the range 'A1:B10' of Sheet1. const range = sheet.getRange('A1:B10'); // Makes cells A1:B10 a protected range. const sampleProtectedRange = range.protect(); // Gets the protected ranges on the sheet. const protections = sheet.getProtections(SpreadsheetApp.ProtectionType.RANGE); // Logs the A1 notation of the first protected range on the sheet. console.log(protections[0].getRange().getA1Notation());
รีเทิร์น
Range
— ช่วงที่มีการป้องกัน
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getRangeName()
รับชื่อของช่วงที่ป้องกันไว้ถ้าเชื่อมโยงกับช่วงที่ตั้งชื่อแล้ว แสดงผล null
หากการป้องกันไม่ได้เชื่อมโยงกับช่วงที่ตั้งชื่อแล้ว โปรดทราบว่าสคริปต์จะต้อง
เรียก setRangeName(rangeName)
เพื่อเชื่อมโยงช่วงที่ป้องกันกับช่วงที่ตั้งชื่อแล้ว การโทร
Range.protect()
เพื่อสร้างการป้องกันจาก Range
ที่เกิดกับ
ช่วงที่ตั้งชื่อแล้วโดยไม่ต้องเรียก setRangeName(rangeName)
ไม่เพียงพอที่จะเชื่อมโยง
ให้พวกเขา อย่างไรก็ตาม การสร้างช่วงที่ป้องกันไว้จากช่วงที่ตั้งชื่อแล้วในการเชื่อมโยง UI ของ 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
ถ้าช่วงที่ป้องกันไว้ไม่ใช่
เชื่อมโยงกับช่วงที่ตั้งชื่อแล้ว
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getTargetAudiences()
แสดงผลรหัสของกลุ่มเป้าหมายเป้าหมายที่แก้ไขช่วงที่มีการป้องกันได้
รีเทิร์น
TargetAudience[]
— อาร์เรย์ของรหัสของกลุ่มเป้าหมาย
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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[]
— อาร์เรย์ของช่วงที่ไม่มีการป้องกันภายในชีตที่มีการป้องกัน
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
isWarningOnly()
ตรวจสอบว่าพื้นที่ที่ป้องกันใช้ "ตามคำเตือน" หรือไม่ การป้องกันตามคำเตือน
หมายความว่าผู้ใช้ทุกคนสามารถแก้ไขข้อมูลในพื้นที่ได้ ยกเว้นการแก้ไขจะแสดงคำเตือนที่ขอให้
ผู้ใช้เพื่อยืนยันการแก้ไข โดยค่าเริ่มต้น ช่วงหรือชีตที่มีการป้องกันจะไม่อิงตามคำเตือน ถึง
เปลี่ยนเป็นสถานะคำเตือน โดยใช้ setWarningOnly(warningOnly)
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit') // Gets a sheet by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Sets the warning status for the protected sheet as true. sampleProtectedSheet.setWarningOnly(true); const protectedSheetWarningStatus = sampleProtectedSheet.isWarningOnly(); // Logs the warning status of the protected sheet to the console. console.log(protectedSheetWarningStatus);
รีเทิร์น
Boolean
— true
หากช่วงหรือชีตที่มีการป้องกันใช้การป้องกันตามคำเตือนเท่านั้น
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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(); }
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
removeEditor(emailAddress)
นำผู้ใช้ที่ระบุออกจากรายการเครื่องมือแก้ไขสำหรับชีตหรือช่วงที่ป้องกันไว้ โปรดทราบว่าหาก ผู้ใช้เป็นสมาชิกของ Google Group ที่มีสิทธิ์แก้ไข หรือถ้าผู้ใช้ทั้งหมดในโดเมน มีสิทธิ์แก้ไข ผู้ใช้ยังคงสามารถแก้ไขพื้นที่ที่มีการป้องกันได้ ไม่ใช่เจ้าของ ของสเปรดชีตหรือผู้ใช้ปัจจุบันออกไปได้
// 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()); }
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
emailAddress | String | อีเมลของผู้ใช้ที่จะนำออก |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
removeEditor(user)
นำผู้ใช้ที่ระบุออกจากรายการเครื่องมือแก้ไขสำหรับชีตหรือช่วงที่ป้องกันไว้ โปรดทราบว่าหาก ผู้ใช้เป็นสมาชิกของ Google Group ที่มีสิทธิ์แก้ไข หรือถ้าผู้ใช้ทั้งหมดในโดเมน มีสิทธิ์แก้ไข ผู้ใช้ยังคงสามารถแก้ไขพื้นที่ที่มีการป้องกันได้เช่นกัน ไม่ใช่ทั้ง สามารถลบเจ้าของสเปรดชีตหรือผู้ใช้ปัจจุบันออกได้
// 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
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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); }
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
emailAddresses | String[] | อาร์เรย์อีเมลของผู้ใช้ที่จะนำออก |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
removeTargetAudience(audienceId)
นํากลุ่มเป้าหมายที่ระบุออกจากการเป็นเอดิเตอร์ของช่วงที่มีการป้องกัน
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
audienceId | String | รหัสของกลุ่มเป้าหมายที่จะนำออก |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setDescription(description)
ตั้งค่าคำอธิบายของช่วงหรือแผ่นงานที่มีการป้องกัน
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets the sheet 'Sheet1' by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet. const sampleProtectedSheet = sheet.protect(); // Sets the sheet description to 'Sheet1 is protected.' sampleProtectedSheet.setDescription('Sheet1 is protected'); // Gets the description of the protected sheet. const sampleProtectedSheetDescription = sampleProtectedSheet.getDescription(); // Logs the description of the protected sheet to the console. console.log(sampleProtectedSheetDescription);
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
description | String | คำอธิบายของช่วงหรือชีตที่มีการป้องกัน |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setDomainEdit(editable)
ตั้งค่าว่าผู้ใช้ทั้งหมดในโดเมนที่เป็นเจ้าของสเปรดชีตมีสิทธิ์แก้ไข ช่วงหรือชีตที่ป้องกันไว้ โปรดทราบว่าผู้ใช้ที่มีสิทธิ์แก้ไขอย่างชัดแจ้งจะสามารถ แก้ไขพื้นที่ที่มีการป้องกันโดยไม่คำนึงถึงการตั้งค่านี้ มีข้อยกเว้นหากสเปรดชีตมี ไม่ได้เป็นของโดเมน Google Workspace (หากเป็นของบัญชี gmail.com)
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
editable | Boolean | true หากผู้ใช้ทุกคนในโดเมนที่เป็นเจ้าของสเปรดชีตควรมี
สิทธิ์ในการแก้ไขช่วงหรือชีตที่มีการป้องกัน false หากไม่ |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setNamedRange(namedRange)
เชื่อมโยงช่วงที่ป้องกันกับช่วงที่ตั้งชื่อแล้ว หากช่วงที่ตั้งชื่อแล้วครอบคลุม
ที่แตกต่างจากช่วงที่ป้องกันในปัจจุบัน วิธีนี้จะย้ายการป้องกันให้ครอบคลุม
ช่วงที่ตั้งชื่อแล้วแทน ช่วงที่ตั้งชื่อแล้วต้องอยู่ในชีตเดียวกันกับช่วงที่ป้องกันไว้
โปรดทราบว่าสคริปต์ต้องเรียกใช้เมธอดนี้อย่างชัดแจ้ง เพื่อเชื่อมโยงช่วงที่ป้องกันกับ
ช่วงที่ตั้งชื่อแล้ว การเรียกใช้ Range.protect()
เพื่อสร้างการป้องกันจาก Range
ที่เกิดขึ้นเป็นช่วงที่ตั้งชื่อแล้ว โดยไม่เรียกใช้ setRangeName(rangeName)
ไม่ใช่
ให้เพียงพอต่อการเชื่อมโยง แต่การสร้างช่วงที่ป้องกันจากช่วงที่ตั้งชื่อใน
UI ของ 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());
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
namedRange | NamedRange | ช่วงที่ตั้งชื่อแล้วเพื่อเชื่อมโยงกับช่วงที่ป้องกันไว้ |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setRange(range)
ปรับช่วงที่มีการป้องกัน หากช่วงที่ระบุครอบคลุมพื้นที่ที่แตกต่างจาก ช่วงที่ได้รับการป้องกันในปัจจุบัน วิธีนี้จะย้ายการป้องกันไปครอบคลุมช่วงใหม่แทน
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Protects cells A1:D10 on Sheet1 of the spreadsheet. const sheet = ss.getSheetByName('Sheet1'); const protectedRange = sheet.getRange('A1:D10').protect(); // Logs the original protected range, A1:D10, to the console. console.log(protectedRange.getRange().getA1Notation()); // Gets the range E1:J10. const newRange = sheet.getRange('E1:J10'); // Updates the protected range to E1:J10. protectedRange.setRange(newRange); // Logs the updated protected range to the console. console.log(protectedRange.getRange().getA1Notation());
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
range | Range | ช่วงใหม่ที่จะป้องกันจากการแก้ไข |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setRangeName(rangeName)
เชื่อมโยงช่วงที่ป้องกันกับช่วงที่ตั้งชื่อแล้ว หากช่วงที่ตั้งชื่อแล้วครอบคลุม
ที่แตกต่างจากช่วงที่ป้องกันในปัจจุบัน วิธีนี้จะย้ายการป้องกันให้ครอบคลุม
ช่วงที่ตั้งชื่อแล้วแทน ช่วงที่ตั้งชื่อแล้วต้องอยู่ในชีตเดียวกันกับช่วงที่ป้องกันไว้
โปรดทราบว่าสคริปต์ต้องเรียกใช้เมธอดนี้อย่างชัดแจ้ง เพื่อเชื่อมโยงช่วงที่ป้องกันกับ
ช่วงที่ตั้งชื่อแล้ว การเรียกใช้ Range.protect()
เพื่อสร้างการป้องกันจาก Range
ที่เกิดขึ้นเป็นช่วงที่ตั้งชื่อแล้ว โดยไม่เรียกใช้ setRangeName(rangeName)
ไม่ใช่
ให้เพียงพอต่อการเชื่อมโยง แต่การสร้างช่วงที่ป้องกันจากช่วงที่ตั้งชื่อใน
UI ของ 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.
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
rangeName | String | ชื่อของช่วงที่ตั้งชื่อแล้วที่จะป้องกัน |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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); }
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
ranges | Range[] | อาร์เรย์ของช่วงที่จะไม่ป้องกันในชีตที่ป้องกันไว้ |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setWarningOnly(warningOnly)
ตั้งค่าว่าช่วงที่ป้องกันนี้ใช้ "ตามคำเตือน" หรือไม่ อิงตามคำเตือน
หมายความว่าผู้ใช้ทุกคนสามารถแก้ไขข้อมูลในพื้นที่ได้ ยกเว้นการแก้ไขข้อความเตือน
ขอให้ผู้ใช้ยืนยันการแก้ไข โดยค่าเริ่มต้น ช่วงหรือชีตที่มีการป้องกันจะไม่
ตามคำเตือน หากต้องการตรวจสอบสถานะคำเตือน ให้ใช้ isWarningOnly()
// Opens the spreadsheet file by its URL. If you created your script from within // a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets the sheet 'Sheet1' by its name. const sheet = ss.getSheetByName('Sheet1'); // Protects the sheet and sets the protection to warning-based. const sampleProtectedSheet = sheet.protect().setWarningOnly(true); // Logs whether the protected sheet is warning-based to the console. console.log(sampleProtectedSheet.isWarningOnly());
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
warningOnly | Boolean |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสำหรับการทำสายโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets