Koşullu biçimlendirme

Google Sheets API, koşullu biçimlendirme kuralları oluşturmanızı ve güncellemenizi sağlar elektronik tablolarda bulabilirsiniz. Yalnızca belirli biçimlendirme türleri (kalın, italik, üstü çizili, ön plan rengi ve arka plan rengi), koşullu olarak kontrol biçimlendirme. Bu sayfadaki örnekler, Sheets API ile koşullu biçimlendirme işlemleri

Bu örnekler, dilden bağımsız olarak HTTP istekleri olarak sunulur. Öğrenmek için Google API kullanılarak farklı dillerde toplu güncelleme uygulama daha fazla bilgi için Güncellemeleri e-tablolar gibi).

Bu örneklerde SPREADSHEET_ID ve SHEET_ID yer tutucuları bu kimlikleri nereye sağlayacağınızı belirtir. E-tabloyu kimliği ekleyin. Şundan faydalanabilirsiniz: sayfa kimliğini değiştirmek için spreadsheets.get yöntemini kullanabilirsiniz. İlgili içeriği oluşturmak için kullanılan aralıklar A1 gösterimi kullanılarak belirtilir. örnek aralık Sayfa1!A1:D5'tir.

Bir satıra koşullu renk gradyanı ekleme

Aşağıdakiler spreadsheets.batchUpdate yöntem kod örneği, AddConditionalFormatRuleRequest renk geçişinin 10 ve 11. satırları için yeni sayfasına gitmelidir. İlk kural, bu satırdaki hücrelerin arka plan renklerinin olduğunu belirtir değerine göre belirlenir. Satırdaki en düşük değer koyu kırmızı renktedir. en yüksek değer ise parlak yeşil renktedir. Diğer değerlerin rengi interpolasyondur. İkinci kural da aynısını yapar ancak belirli sayısal değerleri kullanır renk geçişi uç noktalarını (ve farklı renkleri) belirleme. İstek, sheets.InterpolationPointType type olarak tanımlıyor.

İ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. Gradyan 11. satırın maksimum noktası 256 olarak ayarlandı ve bunun üzerindeki tüm değerler maksimum noktaya sahip renk:

Gradyan biçimi tarif sonucu ekle

Bir aralık grubuna koşullu biçimlendirme kuralı ekleme

Aşağıdakiler spreadsheets.batchUpdate yöntem kod örneği, AddConditionalFormatRuleRequest kullanarak bir sayfanın A ve C sütunları için yeni bir koşullu biçimlendirme kuralı oluşturun. Kurala göre, değeri 10 veya daha küçük olan hücrelerin arka planı var. rengi koyu kırmızıya döndü. Kural 0. dizine eklendiğinden diğer biçimlendirme kurallarına göre öncelik kazanır. İstek, ConditionType için type olarak BooleanRule.

İ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ğıdakiler spreadsheets.batchUpdate yöntem kod örneği, AddConditionalFormatRuleRequest kullanarak bir e-tabloda A1:D5 aralığı için yeni koşullu biçimlendirme kuralları oluşturabilirsiniz. bu hücrelerdeki tarih ve metin değerlerine göre değiştirilir. Metin, "Maliyet" (büyük/küçük harfe duyarlı değil) durumunda, ilk kural hücre metnini kalın olarak ayarlar. Öğe hücre geçen haftadan önceki bir tarihi içeriyorsa, ikinci kural önceki haftadan önce hücre metnini italik ve mavi olarak renklendirir. İstek, ConditionType için type olarak BooleanRule.

İ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.9.2016 ise:

Metin ve tarih koşullu biçim tarifi sonucu

Aralığa özel formül kuralı ekleme

Aşağıdakiler spreadsheets.batchUpdate yöntem kod örneği, AddConditionalFormatRuleRequest için yeni bir koşullu biçimlendirme kuralı oluşturun. elde etti. Kural, hücrenin çarpımını sütunlarından birini seçin. Çarpım değeri 120'den büyükse hücre metni kalın ve italik yazı tipini kullanabilirsiniz. İstek, ConditionType için type olarak BooleanRule.

İ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ğıdakiler spreadsheets.batchUpdate yöntem kod örneği, DeleteConditionalFormatRuleRequest (belirtilen sayfada 0 dizinine sahip koşullu biçimlendirme kuralını silin) SHEET_ID tarafından.

İ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ğıdakiler spreadsheets.get yöntem kodu örnek, başlığın, SHEET_ID ve tüm koşullu biçimlendirme kurallarını belirler. fields sorgusu 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, Spreadsheet kaynağı, bir dizi içeren Her birinde Sheet nesne CANNOT TRANSLATE SheetProperties öğesi ve bir dizi ConditionalFormatRule öğeler. Belirli bir yanıt alanı varsayılan değere ayarlanırsa atlanır kullanıcı olabilir. İstek, ConditionType için type olarak 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
              }
            }
          }
        },
        ...
      ]
    }
  ]
}

Koşullu biçimlendirme kuralını veya önceliğini güncelleme

Aşağıdakiler spreadsheets.batchUpdate yöntem kod örneği, UpdateConditionalFormatRuleRequest oluşturabilirsiniz. İlk istek, mevcut bir koşullu biçimi taşır daha yüksek bir dizine (0 değerinden 2 değerine, dolayısıyla önceliğini azaltarak) yükseltin. İkinci isteği, 0 dizinindeki koşullu biçimlendirme kuralını yeni bir kuralla değiştirir belirtilen metni ("Toplam Maliyet") içeren A1:D5 aralığı. İlk isteğin taşıması, ikincisi başlamadan önce tamamlanır. ikinci istek, orijinal olarak 1 dizininde olan kuralın yerini alıyor. İlgili içeriği oluşturmak için kullanılan istek, ConditionType için type olarak BooleanRule.

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