ช่วงที่ตั้งชื่อ &ป้องกัน

Google Sheets API ช่วยให้คุณสร้าง แก้ไข และลบที่มีชื่อหรือได้รับการปกป้อง ตัวอย่างในหน้านี้จะแสดงให้เห็นวิธีที่คุณจะสามารถบรรลุ การใช้งานชีตโดยใช้ Sheets API

ตัวอย่างเหล่านี้จะแสดงในรูปแบบคำขอ HTTP เป็นภาษา เป็นกลาง หากต้องการทราบวิธีใช้การอัปเดตเป็นกลุ่มในภาษาต่างๆ โดยใช้ ไลบรารีของไคลเอ็นต์ Google API โปรดดูการอัปเดต สเปรดชีต

ในตัวอย่างต่อไปนี้ ตัวยึดตำแหน่ง SPREADSHEET_ID และ SHEET_ID จะระบุตําแหน่งที่คุณจะส่งรหัสเหล่านั้น คุณจะพบสเปรดชีต รหัสใน URL ของสเปรดชีต คุณสามารถ รหัสชีตโดยใช้เมธอด spreadsheets.get มีการระบุช่วงโดยใช้รูปแบบ A1 CANNOT TRANSLATE ช่วงตัวอย่างคือ Sheet1!A1:D5

นอกจากนี้ ตัวยึดตำแหน่ง NAMED_RANGE_ID และ PROTECTED_RANGE_ID ระบุรหัสสำหรับช่วงที่ตั้งชื่อและป้องกัน namedRangeId และ ระบบจะใช้ protectedRangeId เมื่อส่งคำขออัปเดตหรือลบ ช่วงที่เกี่ยวข้อง ระบบจะส่งคืนรหัสในการตอบกลับชีต API คำขอที่สร้างช่วงที่มีชื่อหรือมีการป้องกัน คุณสามารถรับรหัสของ ที่มีช่วง spreadsheets.get ใน เวลา Spreadsheet เนื้อหาการตอบกลับ

เพิ่มช่วงที่ตั้งชื่อหรือป้องกัน

ดังต่อไปนี้ spreadsheets.batchUpdate ตัวอย่างโค้ดแสดงวิธีใช้ออบเจ็กต์คำขอ 2 รายการ กลุ่มแรกใช้องค์ประกอบ AddNamedRangeRequest เพื่อกำหนดช่วง A1:E3 โดยใช้ชื่อ "นับ" รายการที่ 2 ใช้หมวดหมู่ AddProtectedRangeRequest เพื่อแนบการป้องกันระดับคำเตือนกับช่วง A4:E4 การปกป้องระดับนี้ ยังคงอนุญาตให้แก้ไขเซลล์ภายในช่วงได้ แต่จะแสดงคำเตือนก่อน ในการทำการเปลี่ยนแปลง

คำขอเหล่านี้แสดงผล AddNamedRangeResponse และ AddProtectedRangeResponse, ที่มีรหัสช่วงและพร็อพเพอร์ตี้อยู่

โปรโตคอลคำขอแสดงอยู่ด้านล่างนี้

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addNamedRange": {
        "namedRange": {
          "name": "Counts",
          "range": {
            "sheetId": SHEET_ID,
            "startRowIndex": 0,
            "endRowIndex": 3,
            "startColumnIndex": 0,
            "endColumnIndex": 5,
          },
        }
      }
    },
    {
      "addProtectedRange": {
        "protectedRange": {
          "range": {
            "sheetId": SHEET_ID,
            "startRowIndex": 3,
            "endRowIndex": 4,
            "startColumnIndex": 0,
            "endColumnIndex": 5,
          },
          "description": "Protecting total row",
          "warningOnly": true
        }
      }
    }
  ]
}

ลบช่วงที่ตั้งชื่อหรือป้องกัน

ดังต่อไปนี้ spreadsheets.batchUpdate ตัวอย่างโค้ดแสดงวิธีใช้ออบเจ็กต์คำขอ 2 รายการ กลุ่มแรกใช้องค์ประกอบ DeleteNamedRangeRequest เพื่อลบช่วงที่ตั้งชื่อแล้ว โดยใช้ NAMED_RANGE_ID จาก การเรียก API ก่อนหน้านี้ รายการที่ 2 ใช้หมวดหมู่ DeleteProtectedRangeRequest เพื่อลบการป้องกันช่วงที่มีอยู่ โดยใช้ PROTECTED_RANGE_ID จากการเรียก API ก่อนหน้านี้

โปรโตคอลคำขอแสดงอยู่ด้านล่างนี้

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteNamedRange": {
          "namedRangeId": "NAMED_RANGE_ID",
      }
    },
    {
      "deleteProtectedRange": {
        "protectedRangeId": PROTECTED_RANGE_ID,
      }
    }
  ]
}

อัปเดตช่วงที่ตั้งชื่อหรือป้องกัน

ดังต่อไปนี้ spreadsheets.batchUpdate ตัวอย่างโค้ดแสดงวิธีใช้ออบเจ็กต์คำขอ 2 รายการ กลุ่มแรกใช้องค์ประกอบ UpdateNamedRangeRequest เพื่ออัปเดตชื่อของช่วงที่ตั้งชื่อแล้วเป็น "InitialCounts" โดยใช้คำสั่ง NAMED_RANGE_ID จากการเรียก API ก่อนหน้านี้ รายการที่ 2 ใช้หมวดหมู่ UpdateProtectedRangeRequest เพื่ออัปเดตช่วงที่ป้องกันที่มีอยู่เพื่อให้ปกป้องช่วงที่มีชื่อเดียวกัน เมธอด Editors อนุญาตให้เฉพาะผู้ใช้ที่ปรากฏแก้ไขเซลล์เหล่านั้นได้ คำขอนี้ใช้ NAMED_RANGE_ID และ PROTECTED_RANGE_ID จากการเรียก API ก่อนหน้านี้

โปรโตคอลคำขอแสดงอยู่ด้านล่างนี้

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateNamedRange": {
        "namedRange": {
          "namedRangeId": NAMED_RANGE_ID,
          "name": "InitialCounts",
        },
        "fields": "name",
      }
    },
    {
      "updateProtectedRange": {
        "protectedRange": {
          "protectedRangeId": PROTECTED_RANGE_ID,
          "namedRangeId": NAMED_RANGE_ID,
          "warningOnly": false,
          "editors": {
            "users": [
              "charlie@example.com",
              "sasha@example.com"
            ]
          }
        },
        "fields": "namedRangeId,warningOnly,editors"
      }
    }
  ]
}