Koşullu biçimlendirme

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:

Gradyan biçimi tarif sonucu ekle

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:

Koşullu biçimle tarif sonucu ekle

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:

Metin ve tarih koşullu biçim tarifi sonucu

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:

Özel koşullu biçim tarif sonucu

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
              }
            }
          }
        }
      }
    }
  ]
}