Google Sheets API, e-tablolarda koşullu biçimlendirme kuralları oluşturmanıza ve bunları güncellemenize olanak tanır. Koşullu biçimlendirme ile yalnızca belirli biçimlendirme türleri (kalın, italik, üstü çizili, ön plan rengi ve arka plan rengi) kontrol edilebilir. Bu sayfadaki örnekler, E-Tablolar API ile sık kullanılan koşullu biçimlendirme işlemlerinin nasıl gerçekleştirileceğini göstermektedir.
Bu örnekler, dilden bağımsız olarak HTTP istekleri olarak sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncelleme yapmayı öğrenmek için E-tabloları güncelleme bölümüne bakın.
Bu örneklerde SPREADSHEET_ID ve SHEET_ID yer tutucuları, bu kimlikleri nerede sağlayacağınızı belirtir. E-tablo kimliğini e-tablonun URL'sinde bulabilirsiniz. Sayfa kimliğini, spreadsheets.get
yöntemini kullanarak alabilirsiniz. Aralıklar, A1 gösterimi kullanılarak belirtilir. Örneğin 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
'in nasıl kullanılacağı gösterilmektedir. İlk kural, bu 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 renktedir. Diğer değerlerin rengi ara değer
olarak hesaplanır. İkinci kural da aynısını yapar ancak gradyan uç noktalarını (ve farklı renkleri) belirleyen belirli sayısal değerler kullanır. İstekte type
olarak sheets.InterpolationPointType
kullanılı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 } }, ] }
İstekten sonra, uygulanan biçim kuralı sayfayı günceller. 11. satırdaki renk geçişinin maksimum noktası 256
olarak ayarlandığından, ü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
özelliğinin nasıl kullanılacağı gösterilmektedir.
Kural, 10 veya daha düşük değere sahip hücrelerin arka plan renklerinin koyu kırmızıyla değiştirildiğini belirtir. Kural, 0. dizine eklendiğinden diğer biçimlendirme kurallarına göre öncelikli olur. İstekte BooleanRule
için type
olarak ConditionType
kullanılı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 } } ] }
İstekten sonra, uygulanan biçim kuralı sayfayı günceller:
Aralığa tarih ve metin koşullu biçimlendirme kuralları ekleme
Aşağıdaki spreadsheets.batchUpdate
yöntem kodu örneğinde, bir e-tabloda 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
öğesinin nasıl kullanılacağı gösterilmektedir. Metin "Maliyet" dizesini içeriyorsa (büyük/küçük harfe duyarlı değil) ilk kural, hücre metnini kalın olarak ayarlar. Hücre, geçen haftadan önce gerçekleşen bir tarih içeriyorsa ikinci kural, hücre metnini italik ve mavi renkle ayarlar. İstekte BooleanRule
için type
olarak ConditionType
kullanılı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 } } ] }
İstekten sonra, uygulanan biçim kuralı sayfayı günceller. Bu örnekte, geçerli tarih 26.09.2016'dır:
Aralığa özel formül kuralı ekleme
Aşağıdaki spreadsheets.batchUpdate
yöntem kodu örneğinde, bir e-tabloda B5:B8 aralığı için yeni bir koşullu biçimlendirme kuralı oluşturmak üzere AddConditionalFormatRuleRequest
'in özel bir formüle göre 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. İstekte BooleanRule
için type
olarak ConditionType
kullanılı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 } } ] }
İ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 tarafından belirtilen sayfada 0
dizini olan koşullu biçimlendirme kuralını silmek için DeleteConditionalFormatRuleRequest
öğesinin 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ı listesini okuma
Aşağıdaki spreadsheets.get
yöntemi kod örneğinde, bir e-tablodaki her sayfa için başlığın, SHEET_ID öğesinin 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österilmiştir.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)
Yanıt, her biri SheetProperties
öğesi ve ConditionalFormatRule
öğelerinden oluşan bir dizi Sheet
nesneden oluşan bir Spreadsheet
kaynağından oluşur. Belirli bir yanıt alanı varsayılan değere ayarlanırsa yanıttan çıkarılır. İstekte BooleanRule
için type
olarak ConditionType
kullanılı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
yöntem kodu örneğinde, UpdateConditionalFormatRuleRequest
öğesinin birden fazla istekle nasıl kullanılacağı gösterilmektedir. İlk istek, mevcut bir koşullu biçim kuralını daha yüksek bir dizine taşır (0
değerinden 2
değerine düşürerek önceliğini azaltır). İkinci istek, 0
dizinindeki koşullu biçimlendirme kuralını A1:D5 aralığında belirtilen tam metni ("Toplam Maliyet") içeren hücreleri biçimlendiren yeni bir kuralla değiştirir. İlk isteğin taşıma işlemi, ikinci istek başlamadan tamamlandığı için ikinci istek, orijinal olarak 1
dizininde olan kuralın yerini alır. İstekte BooleanRule
için type
olarak ConditionType
kullanılı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 } } } } } } ] }