เข้าถึงและแก้ไขชีตและช่วงที่ป้องกันไว้ ช่วงที่ได้รับการป้องกันสามารถป้องกันได้ทั้งช่วงเซลล์แบบคงที่หรือช่วงที่มีชื่อ แผ่นงานที่ป้องกันอาจมีภูมิภาคที่ไม่ได้รับการปกป้อง สำหรับสเปรดชีตที่สร้างด้วย 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
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
add Target Audience(audienceId)
เพิ่มกลุ่มเป้าหมายที่ระบุเป็นผู้แก้ไขของช่วงที่ป้องกัน
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
audience | String | รหัสของกลุ่มเป้าหมายที่จะเพิ่ม |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
หากผู้ใช้ไม่มีสิทธิ์
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
หากไม่มีสิทธิ์
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
— คำอธิบายของช่วงหรือชีตที่ได้รับการป้องกัน หรือสตริงว่างหากไม่ได้ตั้งค่าคำอธิบายไว้
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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[]
— อาร์เรย์ของผู้ใช้ที่มีสิทธิ์แก้ไขช่วงหรือชีตที่ได้รับการป้องกัน
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
— ช่วงที่ได้รับการป้องกัน
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
get Range Name()
รับชื่อของช่วงที่ป้องกันไว้หากเชื่อมโยงกับช่วงที่มีชื่อ แสดงผลเป็น null
หากการป้องกันไม่ได้เชื่อมโยงกับช่วงที่มีชื่อ โปรดทราบว่าสคริปต์ต้องเรียกใช้ set
อย่างชัดเจนเพื่อเชื่อมโยงช่วงที่มีการป้องกันกับช่วงที่มีชื่อ การเรียกใช้ Range.protect()
เพื่อสร้างการป้องกันจาก Range
ซึ่งเป็นช่วงที่มีชื่อโดยไม่เรียกใช้ set
นั้นไม่เพียงพอที่จะเชื่อมโยงช่วงดังกล่าว อย่างไรก็ตาม การสร้างช่วงที่มีการป้องกันจากช่วงที่มีชื่อใน UI ของ 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
หากช่วงที่ได้รับการป้องกันไม่ได้เชื่อมโยงกับช่วงที่มีชื่อ
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
get Target Audiences()
แสดงผลรหัสของกลุ่มเป้าหมายที่แก้ไขช่วงที่ได้รับการป้องกันได้
รีเทิร์น
Target
— อาร์เรย์ของรหัสกลุ่มเป้าหมาย
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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[]
— อาร์เรย์ของช่วงที่ไม่ได้ป้องกันภายในชีตที่ป้องกันไว้
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
หากช่วงหรือชีตที่ได้รับการป้องกันใช้การป้องกันแบบคำเตือนเท่านั้น
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 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. 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(); }
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
remove Editor(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()); }
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
email | String | อีเมลของผู้ใช้ที่จะนำออก |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
remove Editor(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
remove Editors(emailAddresses)
นำอาร์เรย์ของผู้ใช้ที่ระบุออกจากรายการผู้แก้ไขสำหรับชีตหรือช่วงที่ได้รับการป้องกัน โปรดทราบว่าหากผู้ใช้รายใดเป็นสมาชิกของ Google Group ที่มีสิทธิ์แก้ไข หรือหากผู้ใช้ทุกคนในโดเมนมีสิทธิ์แก้ไข ผู้ใช้เหล่านั้นจะยังคงแก้ไขพื้นที่ที่ได้รับการปกป้องได้ คุณไม่สามารถนำเจ้าของสเปรดชีตหรือผู้ใช้ปัจจุบันออก
// 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
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
remove Target Audience(audienceId)
นำกลุ่มเป้าหมายที่ระบุออกจากผู้แก้ไขของช่วงที่ป้องกัน
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
audience | String | รหัสของกลุ่มเป้าหมายที่จะนําออก |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
set Named Range(namedRange)
เชื่อมโยงช่วงที่ได้รับการป้องกันกับช่วงที่มีชื่อที่มีอยู่ หากช่วงที่มีชื่อครอบคลุมพื้นที่ที่แตกต่างจากช่วงที่ได้รับการปกป้องในปัจจุบัน วิธีการนี้จะย้ายการป้องกันให้ครอบคลุมช่วงที่มีชื่อแทน ช่วงที่มีชื่อต้องอยู่ในชีตเดียวกับช่วงที่ป้องกันอยู่ในปัจจุบัน โปรดทราบว่าสคริปต์ต้องเรียกใช้เมธอดนี้อย่างชัดเจนเพื่อเชื่อมโยงช่วงที่ได้รับการป้องกันกับช่วงที่มีชื่อ การเรียกใช้ Range.protect()
เพื่อสร้างการป้องกันจาก Range
ที่บังเอิญเป็นช่วงที่มีชื่อโดยไม่เรียกใช้ set
นั้นไม่เพียงพอที่จะเชื่อมโยงช่วง อย่างไรก็ตาม การสร้างช่วงที่มีการป้องกันจากช่วงที่มีชื่อใน 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());
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
named | Named | ช่วงที่มีชื่อที่มีอยู่เพื่อเชื่อมโยงกับช่วงที่ป้องกัน |
รีเทิร์น
Protection
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
set Range Name(rangeName)
เชื่อมโยงช่วงที่ได้รับการป้องกันกับช่วงที่มีชื่อที่มีอยู่ หากช่วงที่มีชื่อครอบคลุมพื้นที่ที่แตกต่างจากช่วงที่ได้รับการปกป้องในปัจจุบัน วิธีการนี้จะย้ายการป้องกันให้ครอบคลุมช่วงที่มีชื่อแทน ช่วงที่มีชื่อต้องอยู่ในชีตเดียวกับช่วงที่ป้องกันอยู่ในปัจจุบัน โปรดทราบว่าสคริปต์ต้องเรียกใช้เมธอดนี้อย่างชัดเจนเพื่อเชื่อมโยงช่วงที่ได้รับการป้องกันกับช่วงที่มีชื่อ การเรียกใช้ Range.protect()
เพื่อสร้างการป้องกันจาก Range
ที่บังเอิญเป็นช่วงที่มีชื่อโดยไม่เรียกใช้ set
นั้นไม่เพียงพอที่จะเชื่อมโยงช่วง อย่างไรก็ตาม การสร้างช่วงที่มีการป้องกันจากช่วงที่มีชื่อใน UI ของ 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
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
— ออบเจ็กต์ที่แสดงการตั้งค่าการป้องกันสําหรับการต่อเชื่อม
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets