Google Sheets API, e-tablolarda koşullu biçimlendirme kuralları oluşturmanıza ve güncellemenize olanak tanır. Koşullu biçimlendirmeyle yalnızca belirli biçimlendirme türleri (kalın, italik, üstü çizili, ön plan rengi ve arka plan rengi) kontrol edilebilir. Bu sayfada, Sheets API ile yaygın koşullu biçimlendirme işlemlerinin nasıl yapılacağı gösterilmektedir.
Bu örnekler, dil açısından tarafsız olması için HTTP istekleri olarak sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncelleme yapmayı öğrenmek için E-tabloları güncelleme başlıklı makaleyi inceleyin.
Bu örneklerde, SPREADSHEET_ID ve SHEET_ID yer tutucuları bu kimlikleri nerede sağlayacağınızı gösterir. E-tablo kimliğini e-tablo URL'sinde bulabilirsiniz. spreadsheets.get
yöntemini kullanarak e-tablo kimliğini alabilirsiniz. Aralıklar A1 gösterimi kullanılarak belirtilir. Örnek aralık: Sayfa1!A1:D5.
Bir satıra koşullu renk gradyanı ekleme
Aşağıdaki spreadsheets.batchUpdate
yöntem kodu örneğinde, bir sayfanın 10. ve 11. satırları için yeni gradyan koşullu biçimlendirme kuralları oluşturmak üzere AddConditionalFormatRuleRequest
işlevinin nasıl kullanılacağı gösterilmektedir. İlk kural, söz konusu satırdaki hücrelerin arka plan renklerinin değerlerine göre ayarlandığını belirtir. Satırdaki en düşük değer koyu kırmızı, en yüksek değer ise açık yeşil renkte gösterilir. Diğer değerlerin rengi, doğrusal olmayan uzamsal interplasyonla belirlenir. İkinci kural da aynı işlemi yapar ancak gradyan uç noktalarını (ve farklı renkleri) belirleyen belirli sayısal değerlerle yapar. İstek, type
olarak sheets.InterpolationPointType
değerini kullanır.
İstek protokolü aşağıda gösterilmiştir.
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 } }, ] }
İstek yapıldıktan sonra uygulanan biçimlendirme kuralı sayfayı günceller. 11. satırdaki renk geçişinin maksimum noktası 256
olarak ayarlandığından, bu değerin üzerindeki tüm değerler maksimum nokta rengine sahiptir:
Bir aralık grubuna koşullu biçimlendirme kuralı ekleme
Aşağıdaki spreadsheets.batchUpdate
yöntem kodu örneğinde, bir sayfanın A ve C sütunları için yeni bir koşullu biçimlendirme kuralı oluşturmak üzere AddConditionalFormatRuleRequest
işlevinin nasıl kullanılacağı gösterilmektedir.
Kural, 10 veya daha düşük değere sahip hücrelerin arka plan renklerinin koyu kırmızıya değiştirildiğini belirtir. Kural 0. dizinde eklenir. Bu nedenle, diğer biçimlendirme kurallarına göre önceliklidir. İstek, BooleanRule
için type
olarak ConditionType
değerini kullanır.
İstek protokolü aşağıda gösterilmiştir.
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 } } ] }
İstek sonrasında, uygulanan biçimlendirme kuralı sayfayı günceller:
Bir aralık için tarih ve metin koşullu biçimlendirme kuralları ekleme
Aşağıdaki spreadsheets.batchUpdate
yöntem kodu örneğinde, bir e-tablodaki A1:D5 aralığı için yeni koşullu biçimlendirme kuralları oluşturmak amacıyla AddConditionalFormatRuleRequest
işlevinin bu hücrelerdeki tarih ve metin değerlerine göre nasıl kullanılacağı gösterilmektedir. Metin "Maliyet" dizesini içeriyorsa (büyük/küçük harf duyarlı değildir) ilk kural, hücre metnini kalın olarak ayarlar. Hücre, geçen haftadan önceki bir tarih içeriyorsa ikinci kural, hücre metnini italik olarak ayarlar ve mavi renkte gösterir. İstek, BooleanRule
için type
olarak ConditionType
değerini kullanır.
İstek protokolü aşağıda gösterilmiştir.
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 } } ] }
İstek yapıldıktan sonra uygulanan biçimlendirme kuralı sayfayı günceller. Bu örnekte, geçerli tarih 26.09.2016'dır:
Bir alana özel formül kuralı ekleme
Aşağıdaki spreadsheets.batchUpdate
yöntem kodu örneğinde, bir e-tablodaki B5:B8 aralığı için özel bir formüle dayalı yeni bir koşullu biçimlendirme kuralı oluşturmak üzere AddConditionalFormatRuleRequest
işlevinin nasıl kullanılacağı gösterilmektedir. Kural, A ve B sütunlarındaki hücrenin çarpımını hesaplar. Ürün 120'den büyükse hücre metni kalın ve italik olarak ayarlanır. İstek, BooleanRule
için type
olarak ConditionType
değerini kullanır.
İstek protokolü aşağıda gösterilmiştir.
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 } } ] }
İstek sonrasında, uygulanan biçimlendirme kuralı sayfayı günceller:
Koşullu biçimlendirme kuralını silme
Aşağıdaki spreadsheets.batchUpdate
yöntem kod örneğinde, SHEET_ID tarafından belirtilen sayfadaki 0
dizini olan koşullu biçimlendirme kuralını silmek için DeleteConditionalFormatRuleRequest
işlevinin nasıl kullanılacağı gösterilmektedir.
İstek protokolü aşağıda gösterilmiştir.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteConditionalFormatRule": { "sheetId": SHEET_ID, "index": 0 } } ] }
Koşullu biçimlendirme kurallarının listesini okuma
Aşağıdaki spreadsheets.get
yöntem kodu örneğinde, bir e-tablodaki her sayfanın başlığının, SHEET_ID ve tüm koşullu biçimlendirme kurallarının nasıl alınacağı gösterilmektedir. fields
sorgu parametresi, döndürülecek verileri belirler.
İstek protokolü aşağıda gösterilmiştir.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)
Yanıt, her biri bir SheetProperties
öğesine ve bir ConditionalFormatRule
öğeleri dizisine sahip Sheet
nesneleri dizisi içeren bir Spreadsheet
kaynağından oluşur. Belirli bir yanıt alanı varsayılan değere ayarlanmışsa yanıttan çıkarılır. İstek, BooleanRule
için type
olarak ConditionType
değerini kullanır.
{ "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 } } } }, ... ] } ] }
Koşullu biçimlendirme kuralını veya önceliğini güncelleme
Aşağıdaki spreadsheets.batchUpdate
kod örneğinde, UpdateConditionalFormatRuleRequest
işlevinin birden fazla istekle nasıl kullanılacağı gösterilmektedir. İlk istek, mevcut bir koşullu biçim kuralını daha yüksek bir dizinle (0
yerine 2
) taşır ve önceliğini düşürür. İkinci istek, 0
dizinindeki koşullu biçimlendirme kuralını, A1:D5 aralığında belirtilen metni ("Toplam Maliyet") tam olarak içeren hücreleri biçimlendiren yeni bir kuralla değiştirir. İlk istek, ikinci istek başlamadan önce taşınır. Bu nedenle, ikinci istek, başlangıçta 1
dizininde bulunan kuralı değiştirir. İstek, BooleanRule
için type
olarak ConditionType
değerini kullanır.
İstek protokolü aşağıda gösterilmiştir.
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 } } } } } } ] }