सशर्त फ़ॉर्मेटिंग

Google Sheets API से, शर्त के साथ फ़ॉर्मैटिंग के नियम बनाए जा सकते हैं और उन्हें अपडेट किया जा सकता है देखें. फ़ॉर्मैटिंग के कुछ टाइप (बोल्ड, इटैलिक, स्ट्राइकथ्रू, फ़ोरग्राउंड का रंग और बैकग्राउंड का रंग) को कंडिशनल तरीके से कंट्रोल किया जा सकता है फ़ॉर्मैट न करें. इस पेज पर दिए गए उदाहरणों में बताया गया है कि Sheets API का इस्तेमाल करके, कंडिशनल (शर्त के साथ) फ़ॉर्मैटिंग से जुड़ी कार्रवाइयां.

ये उदाहरण भाषा न्यूट्रल होने के एचटीटीपी अनुरोधों के तौर पर दिखाए गए हैं. सीखने में Google API का इस्तेमाल करके, बैच अपडेट को अलग-अलग भाषाओं में लागू करने का तरीका क्लाइंट लाइब्रेरी के लिए, अपडेट करें स्प्रेडशीट.

इन उदाहरणों में, SPREADSHEET_ID और SHEET_ID प्लेसहोल्डर बताता है कि आपको वे आईडी कहां देने हैं. आपको स्प्रेडशीट आईडी के तौर पर डालें. आपको ये चीज़ें मिल सकती हैं शीट आईडी को बदलने के लिए spreadsheets.get तरीका. कॉन्टेंट बनाने रेंज, A1 नोटेशन का इस्तेमाल करके तय की जाती हैं. अगर आप उदाहरण के लिए, रेंज Sheet1!A1:D5 है.

एक पंक्ति में, कंडिशनल कलर ग्रेडिएंट जोड़ें

नीचे दिए गए spreadsheets.batchUpdate सैंपल कोड का इस्तेमाल करके, यह पता लगाया जा सकता है कि AddConditionalFormatRuleRequest लाइन 10 और 11 के लिए, ग्रेडिएंट कंडिशनल फ़ॉर्मैटिंग के नए नियम बनाने के लिए शीट. पहला नियम बताता है कि उस पंक्ति में मौजूद सेल के बैकग्राउंड रंग हैं उनकी वैल्यू के हिसाब से सेट किया जा सकता है. पंक्ति में सबसे कम वैल्यू, गहरे लाल रंग में दिखती है. जबकि सबसे ऊंचे मान को चमकीले हरे रंग में दिखाया जाता है. दूसरी वैल्यू का रंग इंटरपोलेट किया गया है. दूसरा नियम यही करता है, लेकिन उसके लिए खास संख्या वाली वैल्यू का इस्तेमाल किया जाता है ग्रेडिएंट एंडपॉइंट (और अलग-अलग रंग) तय करना. अनुरोध, sheets.InterpolationPointType type के तौर पर.

अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.

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

अनुरोध के बाद, लागू किए गए फ़ॉर्मैट का नियम, शीट में अपडेट हो जाता है. ग्रेडिएंट के बाद से पंक्ति 11 में, इसका ज़्यादा से ज़्यादा पॉइंट 256 पर सेट है, इसके ऊपर के किसी भी मान में इसकी सबसे बड़ी वैल्यू है रंग:

ग्रेडिएंट फ़ॉर्मैट में रेसिपी का नतीजा जोड़ें

रेंज के सेट में कंडिशनल (शर्त के साथ) फ़ॉर्मैटिंग का नियम जोड़ना

नीचे दिए गए spreadsheets.batchUpdate सैंपल कोड का इस्तेमाल करके, यह पता लगाया जा सकता है कि AddConditionalFormatRuleRequest का इस्तेमाल करें. नियम के मुताबिक 10 या उससे कम वैल्यू वाली सेल में बैकग्राउंड होता है गहरे लाल रंग में बदल गया हो. नियम को इंडेक्स 0 पर डाला गया है, इसलिए यह प्राथमिकता तय करें. अनुरोध, ConditionType के रूप में type BooleanRule.

अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.

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

अनुरोध के बाद, लागू किए गए फ़ॉर्मैट के नियम से शीट में यह बदलाव हो जाता है:

शर्त के साथ फ़ॉर्मैट की रेसिपी का नतीजा जोड़ें

किसी रेंज में, कंडिशनल फ़ॉर्मैटिंग के नियम और तारीख जोड़ें

नीचे दिए गए spreadsheets.batchUpdate तरीका का सैंपल, AddConditionalFormatRuleRequest की मदद से, शीट में A1:D5 रेंज के लिए कंडिशनल फ़ॉर्मैटिंग के नए नियम बनाए जा सकते हैं. तारीख और टेक्स्ट वैल्यू के हिसाब से डाला जाता है. अगर टेक्स्ट में स्ट्रिंग है "कीमत" (केस-इनसेंसिटिव), पहला नियम, सेल के टेक्स्ट को बोल्ड के तौर पर सेट कर देता है. अगर सेल में पिछले हफ़्ते से पहले की तारीख शामिल है, दूसरा नियम सेल के टेक्स्ट को इटैलिक करें और उसे नीला रंग दें. अनुरोध, ConditionType के रूप में type BooleanRule.

अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.

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

अनुरोध के बाद, लागू किए गए फ़ॉर्मैट का नियम, शीट में अपडेट हो जाता है. इस उदाहरण में, मौजूदा तारीख 26/9/2016 है:

टेक्स्ट और तारीख के हिसाब से शर्त के हिसाब से फ़ॉर्मैट की रेसिपी का नतीजा

किसी रेंज में कस्टम फ़ॉर्मूला का नियम जोड़ना

नीचे दिए गए spreadsheets.batchUpdate तरीका का सैंपल, AddConditionalFormatRuleRequest ताकि शीट में B5:B8 रेंज के लिए, कंडिशनल फ़ॉर्मैटिंग का नया नियम बनाया जा सके. पर आधारित होता है. नियम इसमें सेल के गुणनफल की गणना करता है कॉलम A और B. अगर प्रॉडक्ट 120 से ज़्यादा है, तो सेल का टेक्स्ट बोल्ड और इटैलिक करें. अनुरोध, ConditionType के रूप में type BooleanRule.

अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.

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

अनुरोध के बाद, लागू किए गए फ़ॉर्मैट के नियम से शीट में यह बदलाव हो जाता है:

कस्टम कंडिशनल फ़ॉर्मैट में रेसिपी का नतीजा

कंडिशनल फ़ॉर्मैटिंग का नियम मिटाना

नीचे दिए गए spreadsheets.batchUpdate तरीका का सैंपल, DeleteConditionalFormatRuleRequest बताई गई शीट में इंडेक्स 0 वाले कंडिशनल फ़ॉर्मैटिंग के नियम को मिटाने के लिए SHEET_ID ने.

अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteConditionalFormatRule": {
        "sheetId": SHEET_ID,
        "index": 0
      }
    }
  ]
}

कंडिशनल फ़ॉर्मैटिंग के नियमों की सूची पढ़ना

नीचे दिए गए spreadsheets.get तरीका कोड सैंपल में, टाइटल, SHEET_ID, और सभी की सूची पाने का तरीका बताया गया है स्प्रेडशीट में हर शीट के लिए, कंडिशनल (शर्त के साथ) फ़ॉर्मैटिंग के नियम सेट करें. fields क्वेरी पैरामीटर से तय होता है कि कौनसा डेटा दिखाना है.

अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)

इसके जवाब में Spreadsheet संसाधन, जो इसमें Sheet ऑब्जेक्ट में प्रत्येक एक SheetProperties एलिमेंट और कलेक्शन ConditionalFormatRule एलिमेंट. अगर दिया गया जवाब फ़ील्ड डिफ़ॉल्ट मान पर सेट है, तो उसे छोड़ दिया जाता है पहले से चुना हुआ है. अनुरोध, ConditionType type के तौर पर 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
              }
            }
          }
        },
        ...
      ]
    }
  ]
}

कंडिशनल फ़ॉर्मैटिंग के नियम या उसकी प्राथमिकता अपडेट करना

नीचे दिए गए spreadsheets.batchUpdate तरीका का सैंपल, UpdateConditionalFormatRuleRequest कई अनुरोधों के साथ. पहला अनुरोध, मौजूदा कंडिशनल फ़ॉर्मैट को ट्रांसफ़र करता है नियम को ऊंचे इंडेक्स पर सेट करना होगा (0 से 2 तक, इसकी प्राथमिकता घटाकर). दूसरा अनुरोध, इंडेक्स 0 पर कंडिशनल फ़ॉर्मैटिंग के नियम को नए नियम से बदल देता है जो सटीक टेक्स्ट वाली सेल को फ़ॉर्मैट करता है ("कुल लागत") A1:D5 रेंज. पहला अनुरोध, दूसरे अनुरोध के शुरू होने से पहले ही पूरा कर लिया जाता है. इसलिए दूसरा अनुरोध उस नियम की जगह ले रहा है जो मूल रूप से इंडेक्स 1 पर था. कॉन्टेंट बनाने अनुरोध, ConditionType type के तौर पर BooleanRule.

अनुरोध का प्रोटोकॉल नीचे दिखाया गया है.

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