API Google Trang tính cho phép bạn tạo và cập nhật các quy tắc định dạng có điều kiện trong bảng tính. Chỉ một số loại định dạng nhất định (in đậm, in nghiêng, gạch ngang chữ, màu nền trước và màu nền) có thể được kiểm soát thông qua các điều kiện . Các ví dụ trên trang này minh hoạ cách đạt được các thao tác định dạng có điều kiện bằng API Trang tính.
Những ví dụ này được trình bày dưới dạng yêu cầu HTTP nhằm đảm bảo trung lập về ngôn ngữ. Để tìm hiểu cách triển khai việc cập nhật theo lô bằng nhiều ngôn ngữ bằng Google API thư viện ứng dụng, hãy xem phần Cập nhật bảng tính.
Trong những ví dụ này, phần giữ chỗ SPREADSHEET_ID và SHEET_ID
cho biết nơi bạn sẽ cung cấp các mã đó. Bạn có thể tìm thấy bảng tính
Mã nhận dạng trong URL của bảng tính. Bạn có thể tải
mã trang tính bằng cách sử dụng
spreadsheets.get
. Chiến lược phát hành đĩa đơn
dải ô được chỉ định bằng ký hiệu A1. Một
dải ô mẫu là Sheet1!A1:D5.
Thêm hiệu ứng chuyển màu có điều kiện trên một hàng
Nội dung sau đây
spreadsheets.batchUpdate
mã mẫu cho biết cách sử dụng
AddConditionalFormatRuleRequest
để thiết lập quy tắc định dạng có điều kiện chuyển màu mới cho hàng 10 và 11 của
trang tính. Quy tắc đầu tiên nêu rõ rằng các ô trong hàng đó có màu nền
được đặt theo giá trị của chúng. Giá trị thấp nhất trong hàng là màu đỏ đậm,
trong khi giá trị cao nhất là màu xanh lục sáng. Màu của các giá trị khác
là nội suy. Quy tắc thứ hai cũng tương tự, nhưng với các giá trị số cụ thể
xác định các điểm cuối gradient (và các màu khác nhau). Yêu cầu sử dụng
sheets.InterpolationPointType
dưới dạng type
.
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": [ { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 9, "endRowIndex": 10, } ], "gradientRule": { "minpoint": { "color": { "green": 0.2, "red": 0.8 }, "type": "MIN" }, "maxpoint": { "color": { "green": 0.9 }, "type": "MAX" }, } }, "index": 0 } }, { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 10, "endRowIndex": 11, } ], "gradientRule": { "minpoint": { "color": { "green": 0.8, "red": 0.8 }, "type": "NUMBER", "value": "0" }, "maxpoint": { "color": { "blue": 0.9, "green": 0.5, "red": 0.5 }, "type": "NUMBER", "value": "256" }, } }, "index": 1 } }, ] }
Sau khi yêu cầu, quy tắc định dạng được áp dụng sẽ cập nhật trang tính. Vì độ dốc
trong hàng 11 có điểm cực đại được đặt thành 256
, mọi giá trị cao hơn điểm đó đều có điểm tối đa
màu:
Thêm quy tắc định dạng có điều kiện vào một tập hợp dải ô
Nội dung sau đây
spreadsheets.batchUpdate
mã mẫu cho biết cách sử dụng
AddConditionalFormatRuleRequest
để thiết lập quy tắc định dạng có điều kiện mới cho cột A và C của trang tính.
Quy tắc nêu rõ rằng các ô có giá trị từ 10 trở xuống sẽ có nền riêng
màu đã đổi thành đỏ sẫm. Quy tắc này được chèn tại chỉ mục 0, nên quy tắc này sẽ nhận
so với các quy tắc định dạng khác. Yêu cầu sử dụng
ConditionType
là type
cho
BooleanRule
.
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": [ { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startColumnIndex": 0, "endColumnIndex": 1, }, { "sheetId": SHEET_ID, "startColumnIndex": 2, "endColumnIndex": 3, }, ], "booleanRule": { "condition": { "type": "NUMBER_LESS_THAN_EQ", "values": [ { "userEnteredValue": "10" } ] }, "format": { "backgroundColor": { "green": 0.2, "red": 0.8, } } } }, "index": 0 } } ] }
Sau khi yêu cầu, quy tắc định dạng được áp dụng sẽ cập nhật trang tính:
Thêm quy tắc định dạng có điều kiện cho ngày và văn bản vào một dải ô
Nội dung sau đây
spreadsheets.batchUpdate
mã mẫu cho biết cách sử dụng
AddConditionalFormatRuleRequest
để thiết lập các quy tắc định dạng có điều kiện mới cho dải ô A1:D5 trong một trang tính,
dựa trên các giá trị ngày và văn bản trong các ô đó. Nếu văn bản chứa chuỗi
"Chi phí" (không phân biệt chữ hoa chữ thường), quy tắc đầu tiên đặt văn bản trong ô thành in đậm. Nếu
ô chứa ngày xảy ra trước tuần trước, quy tắc thứ hai đặt giá trị
văn bản trong ô dưới dạng in nghiêng và tô màu xanh lam. Yêu cầu sử dụng
ConditionType
là type
cho
BooleanRule
.
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": [ { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 5, "startColumnIndex": 0, "endColumnIndex": 4, } ], "booleanRule": { "condition": { "type": "TEXT_CONTAINS", "values": [ { "userEnteredValue": "Cost" } ] }, "format": { "textFormat": { "bold": true } } } }, "index": 0 } }, { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 5, "startColumnIndex": 0, "endColumnIndex": 4, } ], "booleanRule": { "condition": { "type": "DATE_BEFORE", "values": [ { "relativeDate": "PAST_WEEK" } ] }, "format": { "textFormat": { "italic": true, "foregroundColor": { "blue": 1 } } } } }, "index": 1 } } ] }
Sau khi yêu cầu, quy tắc định dạng được áp dụng sẽ cập nhật trang tính. Trong ví dụ này, hiện tại là 26/9/2016:
Thêm quy tắc công thức tuỳ chỉnh vào dải ô
Nội dung sau đây
spreadsheets.batchUpdate
mã mẫu cho biết cách sử dụng
AddConditionalFormatRuleRequest
để thiết lập quy tắc định dạng có điều kiện mới cho dải ô B5:B8 trong một trang tính,
dựa trên một công thức tuỳ chỉnh. Quy tắc tính tích của ô trong
cột A và B. Nếu tích lớn hơn 120, văn bản ô sẽ được đặt thành
kiểu in đậm và in nghiêng. Yêu cầu sử dụng
ConditionType
là type
cho
BooleanRule
.
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": [ { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startColumnIndex": 2, "endColumnIndex": 3, "startRowIndex": 4, "endRowIndex": 8 } ], "booleanRule": { "condition": { "type": "CUSTOM_FORMULA", "values": [ { "userEnteredValue": "=GT(A5*B5,120)" } ] }, "format": { "textFormat": { "bold": true, "italic": true } } } }, "index": 0 } } ] }
Sau khi yêu cầu, quy tắc định dạng được áp dụng sẽ cập nhật trang tính:
Xoá quy tắc định dạng có điều kiện
Nội dung sau đây
spreadsheets.batchUpdate
mã mẫu cho biết cách sử dụng
DeleteConditionalFormatRuleRequest
để xoá quy tắc định dạng có điều kiện có chỉ mục 0
trong trang tính được chỉ định
của SHEET_ID.
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": [ { "deleteConditionalFormatRule": { "sheetId": SHEET_ID, "index": 0 } } ] }
Đọc danh sách quy tắc định dạng có điều kiện
Nội dung sau đây
Mã phương thức spreadsheets.get
mẫu cho biết cách lấy tiêu đề, SHEET_ID và danh sách tất cả
quy tắc định dạng có điều kiện cho mỗi trang tính trong bảng tính. Truy vấn fields
xác định dữ liệu nào cần trả về.
Giao thức yêu cầu được trình bày dưới đây.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)
Phản hồi bao gồm
Tài nguyên Spreadsheet
chứa một mảng
Sheet
mỗi đối tượng có
một
SheetProperties
và một mảng
ConditionalFormatRule
phần tử. Nếu một trường phản hồi nhất định được đặt thành giá trị mặc định, trường đó sẽ bị bỏ qua
khỏi câu trả lời. Yêu cầu sử dụng
ConditionType
là type
cho
BooleanRule
.
{ "sheets": [ { "properties": { "sheetId": 0, "title": "Sheet1" }, "conditionalFormats": [ { "ranges": [ { "startRowIndex": 4, "endRowIndex": 8, "startColumnIndex": 2, "endColumnIndex": 3 } ], "booleanRule": { "condition": { "type": "CUSTOM_FORMULA", "values": [ { "userEnteredValue": "=GT(A5*B5,120)" } ] }, "format": { "textFormat": { "bold": true, "italic": true } } } }, { "ranges": [ { "startRowIndex": 0, "endRowIndex": 5, "startColumnIndex": 0, "endColumnIndex": 4 } ], "booleanRule": { "condition": { "type": "DATE_BEFORE", "values": [ { "relativeDate": "PAST_WEEK" } ] }, "format": { "textFormat": { "foregroundColor": { "blue": 1 }, "italic": true } } } }, ... ] } ] }
Cập nhật quy tắc định dạng có điều kiện hoặc mức độ ưu tiên của quy tắc
Nội dung sau đây
spreadsheets.batchUpdate
mã mẫu cho biết cách sử dụng
UpdateConditionalFormatRuleRequest
có nhiều yêu cầu. Yêu cầu đầu tiên di chuyển định dạng có điều kiện hiện có
quy tắc lên chỉ mục cao hơn (từ 0
xuống 2
, giảm mức độ ưu tiên của quy tắc). Thứ hai
yêu cầu thay thế quy tắc định dạng có điều kiện tại chỉ mục 0
bằng một quy tắc mới
định dạng các ô có chứa văn bản chính xác được chỉ định ("Tổng chi phí") trong
Phạm vi A1:D5. Quá trình di chuyển của yêu cầu đầu tiên được hoàn tất trước khi yêu cầu thứ hai bắt đầu, do đó
yêu cầu thứ hai sẽ thay thế quy tắc ban đầu tại chỉ mục 1
. Chiến lược phát hành đĩa đơn
yêu cầu sử dụng
ConditionType
là type
cho
BooleanRule
.
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": [ { "updateConditionalFormatRule": { "sheetId": SHEET_ID, "index": 0, "newIndex": 2 }, "updateConditionalFormatRule": { "sheetId": SHEET_ID, "index": 0, "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 5, "startColumnIndex": 0, "endColumnIndex": 4, } ], "booleanRule": { "condition": { "type": "TEXT_EQ", "values": [ { "userEnteredValue": "Total Cost" } ] }, "format": { "textFormat": { "bold": true } } } } } } ] }