&Các dải ô được bảo vệ &

API Google Trang tính cho phép bạn tạo, sửa đổi và xoá các dải ô được đặt tên hoặc được bảo vệ. Các ví dụ trên trang này minh hoạ cách bạn có thể thực hiện một số thao tác phổ biến trong Trang tính khi dùng API Trang tính.

Những ví dụ này được trình bày dưới dạng các yêu cầu HTTP để đảm bảo trung lập về ngôn ngữ. Để tìm hiểu cách triển khai tính năng cập nhật theo lô cho nhiều ngôn ngữ bằng thư viện ứng dụng API của Google, hãy xem phần Cập nhật bảng tính.

Trong các ví dụ này, phần giữ chỗ SPREADSHEET_IDSHEET_ID cho biết nơi bạn sẽ cung cấp các mã nhận dạng đó. Bạn có thể tìm thấy mã bảng tính trong URL của bảng tính. Bạn có thể lấy mã trang tính bằng cách sử dụng phương thức spreadsheets.get. Các dải ô được chỉ định bằng ký hiệu A1. Dải ô ví dụ là Sheet1!A1:D5.

Ngoài ra, các phần giữ chỗ NAMED_RANGE_IDPROTECTED_RANGE_ID cung cấp mã nhận dạng cho các dải ô được đặt tên và được bảo vệ. namedRangeIdprotectedRangeId được dùng khi đưa ra yêu cầu cập nhật hoặc xoá các dải ô liên kết. Mã nhận dạng được trả về trong phản hồi cho yêu cầu API Trang tính để tạo dải ô được đặt tên hoặc được bảo vệ. Bạn có thể lấy mã nhận dạng của các dải ô hiện có bằng phương thức spreadsheets.get, trong nội dung phản hồi Spreadsheet.

Thêm dải ô được đặt tên hoặc được bảo vệ

Mã mẫu spreadsheets.batchUpdate sau đây cho biết cách sử dụng 2 đối tượng yêu cầu. Hàm đầu tiên dùng AddNamedRangeRequest để gán tên cho dải ô A1:E3 là "Counts". Phương thức thứ hai sử dụng AddProtectedRangeRequest để đính kèm biện pháp bảo vệ cấp cảnh báo vào phạm vi A4:E4. Tính năng bảo vệ ở cấp độ này vẫn cho phép chỉnh sửa các ô trong dải ô nhưng sẽ đưa ra cảnh báo trước khi thực hiện thay đổi.

Các yêu cầu này trả về một AddNamedRangeResponse và một AddProtectedRangeResponse, chứa các thuộc tính và mã dải ô.

Giao thức yêu cầu được trình bày dưới đây.

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
        }
      }
    }
  ]
}

Xóa dải ô được đặt tên hoặc được bảo vệ

Mã mẫu spreadsheets.batchUpdate sau đây cho biết cách sử dụng 2 đối tượng yêu cầu. Phương thức đầu tiên dùng DeleteNamedRangeRequest để xoá dải ô được đặt tên hiện có, dùng NAMED_RANGE_ID từ lệnh gọi API trước đó. Phương thức thứ hai sử dụng DeleteProtectedRangeRequest để xoá một biện pháp bảo vệ dải ô hiện có bằng cách dùng PROTECTED_RANGE_ID từ lệnh gọi API trước đó.

Giao thức yêu cầu được trình bày dưới đây.

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

Cập nhật dải ô được đặt tên hoặc được bảo vệ

Mã mẫu spreadsheets.batchUpdate sau đây cho biết cách sử dụng 2 đối tượng yêu cầu. Phương thức đầu tiên sử dụng UpdateNamedRangeRequest để cập nhật tên của một dải ô được đặt tên hiện có thành "InitialCounts", bằng cách sử dụng NAMED_RANGE_ID từ lệnh gọi API trước đó. Trường hợp thứ hai sử dụng UpdateProtectedRangeRequest để cập nhật một dải ô được bảo vệ hiện có để bảo vệ cùng một dải ô được đặt tên. Phương thức Editors chỉ cho phép người dùng trong danh sách chỉnh sửa các ô đó. Yêu cầu này sử dụng NAMED_RANGE_IDPROTECTED_RANGE_ID từ các lệnh gọi API trước đó.

Giao thức yêu cầu được trình bày dưới đây.

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"
      }
    }
  ]
}