Google Sheets API, e-tablolarda koşullu biçimlendirme kuralları oluşturmanıza ve güncellemenize olanak tanır. Yalnızca belirli biçimlendirme türleri (kalın, italik, üstü çizili, ön plan rengi ve arka plan rengi) koşullu biçimlendirme aracılığıyla kontrol edilebilir. Bu sayfadaki örneklerde, Sheets API ile yaygın koşullu biçimlendirme işlemlerinin nasıl yapılacağı gösterilmektedir.
Bu örnekler, dilden bağımsız olması için HTTP istekleri olarak sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncelleme işlemini nasıl uygulayacağınızı öğ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. Sayfa
kimliğini spreadsheets.get
yöntemini kullanarak alabilirsiniz. Aralıklar A1 gösterimi kullanılarak belirtilir. Örnek bir 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
nasıl kullanılacağı gösterilmektedir. İlk kural, o 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 parlak yeşil renkte gösterilir. Diğer değerlerin rengi enterpolasyonla belirlenir. İkinci kural da aynı işlemi yapar ancak gradyan uç noktalarını (ve farklı renkleri) belirleyen belirli sayısal değerlerle. İstek, type
olarak sheets.InterpolationPointType
kullanıyor.
İstek protokolü aşağıda gösterilmektedir.
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 } }, ] }
İstekten sonra, uygulanan biçim kuralı sayfayı günceller. 11. satırdaki renk geçişinin maksimum nokta değeri 256
olarak ayarlandığından, bu değerin üzerindeki tüm değerler maksimum nokta rengine sahiptir:
Bir dizi aralığa 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
yönteminin nasıl kullanılacağı gösterilmektedir.
Kurala göre, değeri 10 veya daha az olan hücrelerin arka plan rengi koyu kırmızı olarak değiştirilir. Kural, dizin 0'a eklenir. Bu nedenle, diğer biçimlendirme kurallarına göre önceliklidir. İstek, BooleanRule
için type
olarak ConditionType
kullanıyor.
İstek protokolü aşağıda gösterilmektedir.
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 } } ] }
İstekten sonra, uygulanan biçim kuralı sayfayı günceller:
Bir aralığa tarih ve metin koşullu biçimlendirme kuralları ekleme
Aşağıdaki
spreadsheets.batchUpdate
yöntem kodu örneğinde, bir sayfadaki A1:D5 aralığı için bu hücrelerdeki tarih ve metin değerlerine göre yeni koşullu biçimlendirme kuralları oluşturmak üzere
AddConditionalFormatRuleRequest
nasıl kullanılacağı gösterilmektedir. Metin, "Cost" dizesini (büyük/küçük harfe duyarsız) içeriyorsa ilk kural, hücre metnini kalın olarak ayarlar. Hücrede geçen haftadan önceki bir tarih varsa ikinci kural, hücre metnini italik olarak ayarlar ve mavi renkte gösterir. İstek, BooleanRule
için type
olarak ConditionType
kullanıyor.
İstek protokolü aşağıda gösterilmektedir.
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 } } ] }
İstekten sonra, uygulanan biçim kuralı sayfayı günceller. Bu örnekte, mevcut tarih 26.09.2016'dır:
Bir aralığa özel formül kuralı ekleme
Aşağıdaki
spreadsheets.batchUpdate
yöntem kodu örneğinde, bir sayfadaki B5:B8 aralığı için özel bir formüle dayalı olarak yeni bir koşullu biçimlendirme kuralı oluşturmak üzere
AddConditionalFormatRuleRequest
yönteminin 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
kullanıyor.
İstek protokolü aşağıda gösterilmektedir.
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 } } ] }
İstekten sonra, uygulanan biçim kuralı sayfayı günceller:
Koşullu biçimlendirme kuralını silme
Aşağıdaki
spreadsheets.batchUpdate
yöntem kodu örneğinde, SHEET_ID ile belirtilen sayfada 0
dizinli koşullu biçimlendirme kuralını silmek için
DeleteConditionalFormatRuleRequest
yönteminin nasıl kullanılacağı gösterilmektedir.
İstek protokolü aşağıda gösterilmektedir.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteConditionalFormatRule": { "sheetId": SHEET_ID, "index": 0 } } ] }
Koşullu biçimlendirme kuralları 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 listesinin nasıl alınacağı gösterilmektedir. fields
Sorgu parametresi, hangi verilerin döndürüleceğini belirler.
İstek protokolü aşağıda gösterilmektedir.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)
Yanıt, her biri bir SheetProperties
öğesi ve bir ConditionalFormatRule
öğeleri dizisi içeren Sheet
nesneleri dizisini içeren bir Spreadsheet
kaynağından oluşur. Belirli bir yanıt alanı varsayılan değere ayarlanırsa yanıttan çıkarılır. İstek, BooleanRule
için type
olarak ConditionType
kullanıyor.
{ "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
yöntem kodu örneğinde, UpdateConditionalFormatRuleRequest
yönteminin birden fazla istekle nasıl kullanılacağı gösterilmektedir. İlk istek, mevcut bir koşullu biçimlendirme kuralını daha yüksek bir dizine taşır (0
'dan 2
'ye, önceliğini azaltarak). İkinci istek, 0
dizinindeki koşullu biçimlendirme kuralını, A1:D5 aralığında belirtilen metni ("Toplam Maliyet") içeren hücreleri biçimlendiren yeni bir kural ile değiştirir. İlk isteğin taşıma işlemi tamamlandıktan sonra ikinci istek başlar. Bu nedenle, ikinci istek başlangıçta 1
dizininde bulunan kuralın yerini alır. İstek, BooleanRule
için type
olarak ConditionType
kullanıyor.
İstek protokolü aşağıda gösterilmektedir.
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 } } } } } } ] }