Google Sheets API memungkinkan Anda membuat dan memperbarui aturan format bersyarat di spreadsheet. Hanya jenis pemformatan tertentu (tebal, miring, coret, warna latar depan, dan warna latar belakang) yang dapat dikontrol melalui pemformatan kondisional. Contoh di halaman ini mengilustrasikan cara melakukan operasi format bersyarat umum dengan Sheets API.
Contoh ini ditampilkan sebagai permintaan HTTP agar tidak menggunakan bahasa. Untuk mempelajari cara menerapkan update batch dalam berbagai bahasa menggunakan library klien Google API, lihat Mengupdate spreadsheet.
Dalam contoh ini, placeholder SPREADSHEET_ID dan SHEET_ID
menunjukkan tempat Anda akan memberikan ID tersebut. Anda dapat menemukan ID spreadsheet di URL spreadsheet. Anda bisa mendapatkan
ID sheet dengan menggunakan
metode spreadsheets.get
. Rentang
ditentukan menggunakan notasi A1. Contoh
rentangnya adalah Sheet1!A1:D5.
Menambahkan gradasi warna bersyarat pada satu baris
Contoh kode metode
spreadsheets.batchUpdate
berikut menunjukkan cara menggunakan
AddConditionalFormatRuleRequest
untuk menetapkan aturan pemformatan bersyarat gradien baru bagi baris 10 dan 11
sheet. Aturan pertama menyatakan bahwa sel dalam baris tersebut memiliki warna latar belakang
yang ditetapkan sesuai dengan nilainya. Nilai terendah dalam baris diwarnai merah tua,
sedangkan nilai tertinggi diwarnai hijau cerah. Warna dari nilai-nilai
lain diinterpolasi. Aturan kedua melakukan hal yang sama, tetapi dengan nilai numerik spesifik yang menentukan endpoint gradien (dan warna yang berbeda). Permintaan ini menggunakan
sheets.InterpolationPointType
sebagai type
.
Protokol permintaan ditampilkan di bawah ini.
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 } }, ] }
Setelah permintaan dibuat, aturan format yang diterapkan akan memperbarui sheet. Karena gradien di baris 11 memiliki maxpoint yang ditetapkan ke 256
, nilai apa pun di atasnya akan memiliki warna maxpoint:
Menambahkan aturan format bersyarat ke kumpulan rentang
Contoh kode metode
spreadsheets.batchUpdate
berikut menunjukkan cara menggunakan
AddConditionalFormatRuleRequest
untuk menetapkan aturan format bersyarat baru untuk kolom A dan C pada sheet.
Aturan ini menyatakan bahwa warna latar belakang untuk sel dengan nilai 10 atau kurang akan berubah menjadi merah tua. Aturan disisipkan pada indeks 0, sehingga lebih diprioritaskan daripada aturan pemformatan lainnya. Permintaan menggunakan
ConditionType
sebagai type
untuk
BooleanRule
.
Protokol permintaan ditampilkan di bawah ini.
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 } } ] }
Setelah permintaan, aturan format yang diterapkan akan memperbarui sheet:
Menambahkan aturan format bersyarat tanggal dan teks ke rentang
Contoh kode metode
spreadsheets.batchUpdate
berikut menunjukkan cara menggunakan
AddConditionalFormatRuleRequest
untuk menetapkan aturan format bersyarat baru bagi rentang A1:D5 dalam sheet,
berdasarkan nilai tanggal dan teks di sel tersebut. Jika teks berisi string "Biaya" (tidak peka huruf besar/kecil), aturan pertama menetapkan teks sel ke dalam huruf tebal. Jika sel berisi tanggal yang terjadi sebelum seminggu terakhir, aturan kedua akan menetapkan teks sel sebagai miring dan warnai dengan warna biru. Permintaan menggunakan
ConditionType
sebagai type
untuk
BooleanRule
.
Protokol permintaan ditampilkan di bawah ini.
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 } } ] }
Setelah permintaan dibuat, aturan format yang diterapkan akan memperbarui sheet. Dalam contoh ini, tanggal saat ini adalah 26/9/2016:
Menambahkan aturan formula kustom ke rentang
Contoh kode metode
spreadsheets.batchUpdate
berikut menunjukkan cara menggunakan
AddConditionalFormatRuleRequest
untuk menetapkan aturan format bersyarat baru untuk rentang B5:B8 dalam sheet,
berdasarkan formula kustom. Aturan tersebut menghitung produk sel
di kolom A dan B. Jika produk lebih besar dari 120, teks sel akan disetel ke
tebal dan miring. Permintaan menggunakan
ConditionType
sebagai type
untuk
BooleanRule
.
Protokol permintaan ditampilkan di bawah ini.
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 } } ] }
Setelah permintaan, aturan format yang diterapkan akan memperbarui sheet:
Menghapus aturan format bersyarat
Contoh kode metode
spreadsheets.batchUpdate
berikut menunjukkan cara menggunakan
DeleteConditionalFormatRuleRequest
untuk menghapus aturan format bersyarat dengan indeks 0
dalam sheet yang ditentukan
oleh SHEET_ID.
Protokol permintaan ditampilkan di bawah ini.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteConditionalFormatRule": { "sheetId": SHEET_ID, "index": 0 } } ] }
Membaca daftar aturan format bersyarat
Contoh kode metode
spreadsheets.get
berikut menunjukkan cara mendapatkan judul, SHEET_ID, dan daftar semua
aturan format bersyarat untuk setiap sheet dalam spreadsheet. Parameter kueri fields
menentukan data yang akan ditampilkan.
Protokol permintaan ditampilkan di bawah ini.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)
Respons terdiri dari
resource Spreadsheet
, yang
berisi array objek
Sheet
, yang masing-masing memiliki
elemen
SheetProperties
dan array
elemen ConditionalFormatRule
. Jika kolom respons tertentu ditetapkan ke nilai default, kolom tersebut akan dihilangkan
dari respons. Permintaan menggunakan
ConditionType
sebagai type
untuk
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 } } } }, ... ] } ] }
Memperbarui aturan format bersyarat atau prioritasnya
Contoh kode metode
spreadsheets.batchUpdate
berikut menunjukkan cara menggunakan
UpdateConditionalFormatRuleRequest
dengan beberapa permintaan. Permintaan pertama memindahkan aturan format bersyarat yang sudah ada
ke indeks yang lebih tinggi (dari 0
ke 2
, yang menurunkan prioritasnya). Permintaan kedua mengganti aturan pemformatan bersyarat pada indeks 0
dengan aturan baru yang memformat sel berisi teks yang sama persis dengan yang ditentukan ("Total Biaya") dalam rentang A1:D5. Pemindahan permintaan pertama selesai sebelum permintaan kedua dimulai, sehingga
permintaan kedua menggantikan aturan yang awalnya ada di indeks 1
. Permintaan
menggunakan
ConditionType
sebagai type
untuk
BooleanRule
.
Protokol permintaan ditampilkan di bawah ini.
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 } } } } } } ] }