শর্তসাপেক্ষ বিন্যাসন

Google Sheets API আপনাকে স্প্রেডশীটে শর্তসাপেক্ষ ফর্ম্যাটিং নিয়ম তৈরি এবং আপডেট করতে দেয়। শর্তসাপেক্ষ বিন্যাসের মাধ্যমে শুধুমাত্র নির্দিষ্ট কিছু ফর্ম্যাটিং প্রকার (বোল্ড, ইটালিক, স্ট্রাইকথ্রু, ফোরগ্রাউন্ড কালার এবং ব্যাকগ্রাউন্ড কালার) নিয়ন্ত্রণ করা যায়। এই পৃষ্ঠার উদাহরণগুলি কীভাবে শীট API-এর সাথে সাধারণ শর্তসাপেক্ষ ফর্ম্যাটিং ক্রিয়াকলাপগুলি অর্জন করতে হয় তা ব্যাখ্যা করে৷

এই উদাহরণগুলি ভাষা নিরপেক্ষ হওয়ার জন্য HTTP অনুরোধ হিসাবে উপস্থাপন করা হয়েছে। Google API ক্লায়েন্ট লাইব্রেরি ব্যবহার করে কিভাবে বিভিন্ন ভাষায় একটি ব্যাচ আপডেট বাস্তবায়ন করতে হয় তা জানতে, স্প্রেডশীট আপডেট করুন দেখুন।

এই উদাহরণগুলিতে, স্থানধারক SPREADSHEET_ID এবং SHEET_ID নির্দেশ করে যে আপনি সেই IDগুলি কোথায় দেবেন৷ আপনি স্প্রেডশীট ইউআরএলে স্প্রেডশীট আইডি খুঁজে পেতে পারেন। আপনি spreadsheets.get পদ্ধতি ব্যবহার করে শীট আইডি পেতে পারেন। A1 স্বরলিপি ব্যবহার করে রেঞ্জগুলি নির্দিষ্ট করা হয়েছে। একটি উদাহরণ পরিসীমা হল Sheet1!A1:D5।

একটি সারি জুড়ে একটি শর্তাধীন রঙের গ্রেডিয়েন্ট যোগ করুন

নিম্নলিখিত spreadsheets.batchUpdate পদ্ধতির কোড নমুনা দেখায় কিভাবে একটি শীটের সারি 10 এবং 11 এর জন্য নতুন গ্রেডিয়েন্ট শর্তসাপেক্ষ বিন্যাস নিয়ম প্রতিষ্ঠা করতে AddConditionalFormatRuleRequest ব্যবহার করতে হয়। প্রথম নিয়মে বলা হয়েছে যে সেই সারির কক্ষগুলির পটভূমির রঙগুলি তাদের মান অনুযায়ী সেট করা আছে। সারির সর্বনিম্ন মান হল রঙিন গাঢ় লাল, যখন সর্বোচ্চ মান হল উজ্জ্বল সবুজ রঙের। অন্যান্য মানের রঙ ইন্টারপোলেট করা হয়। দ্বিতীয় নিয়মটি একই কাজ করে, কিন্তু নির্দিষ্ট সাংখ্যিক মানের সাথে গ্রেডিয়েন্ট শেষ বিন্দু (এবং বিভিন্ন রং) নির্ধারণ করে। অনুরোধটি 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 পদ্ধতির কোড নমুনা দেখায় কিভাবে একটি শীটের কলাম A এবং C এর জন্য একটি নতুন শর্তসাপেক্ষ বিন্যাস নিয়ম প্রতিষ্ঠা করতে AddConditionalFormatRuleRequest ব্যবহার করতে হয়। নিয়মে বলা হয়েছে যে 10 বা তার কম মানের কক্ষগুলির পটভূমির রঙগুলি গাঢ় লালে পরিবর্তিত হয়েছে৷ নিয়মটি সূচী 0 এ সন্নিবেশ করা হয়েছে, তাই এটি অন্যান্য বিন্যাস নিয়মের উপর অগ্রাধিকার নেয়। অনুরোধটি BooleanRule এর type হিসাবে ConditionType ব্যবহার করে।

অনুরোধ প্রোটোকল নীচে দেখানো হয়েছে.

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 পদ্ধতির কোড নমুনাটি দেখায় কিভাবে একটি শীটে A1:D5 রেঞ্জের জন্য নতুন শর্তসাপেক্ষ বিন্যাস নিয়ম স্থাপন করতে AddConditionalFormatRuleRequest ব্যবহার করতে হয়, সেই কক্ষে তারিখ এবং পাঠ্য মানের উপর ভিত্তি করে। যদি টেক্সটে "কস্ট" (কেস-সংবেদনশীল) স্ট্রিং থাকে, প্রথম নিয়মটি সেল টেক্সটটিকে বোল্ড হিসাবে সেট করে। যদি কক্ষে গত সপ্তাহের আগে ঘটে যাওয়া একটি তারিখ থাকে, তবে দ্বিতীয় নিয়মটি ঘরের পাঠ্যটিকে তির্যক হিসাবে সেট করে এবং এটিকে নীল রঙ করে। অনুরোধটি BooleanRule এর type হিসাবে ConditionType ব্যবহার করে।

অনুরোধ প্রোটোকল নীচে দেখানো হয়েছে.

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

অনুরোধের পরে, প্রয়োগকৃত বিন্যাস নিয়ম শীট আপডেট করে। এই উদাহরণে, বর্তমান তারিখ হল 9/26/2016:

পাঠ্য এবং তারিখ শর্তসাপেক্ষ বিন্যাস রেসিপি ফলাফল

একটি পরিসরে একটি কাস্টম সূত্র নিয়ম যোগ করুন

নিম্নলিখিত spreadsheets.batchUpdate পদ্ধতির কোড নমুনাটি একটি কাস্টম সূত্রের উপর ভিত্তি করে একটি শীটে B5:B8 পরিসরের জন্য একটি নতুন শর্তসাপেক্ষ বিন্যাস নিয়ম প্রতিষ্ঠা করার জন্য AddConditionalFormatRuleRequest কীভাবে ব্যবহার করতে হয় তা দেখায়। নিয়মটি A এবং B কলামে ঘরের গুণফল গণনা করে। গুণফল 120-এর বেশি হলে, ঘরের পাঠ্যটি বোল্ড এবং তির্যক রূপে সেট করা হয়। অনুরোধটি BooleanRule এর type হিসাবে ConditionType ব্যবহার করে।

অনুরোধ প্রোটোকল নীচে দেখানো হয়েছে.

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

অনুরোধের পরে, প্রয়োগকৃত বিন্যাস নিয়ম শীট আপডেট করে:

কাস্টম শর্তাধীন বিন্যাস রেসিপি ফলাফল

একটি শর্তাধীন বিন্যাস নিয়ম মুছুন

SHEET_ID দ্বারা নির্দিষ্ট শীটে সূচক 0 সহ শর্তসাপেক্ষ বিন্যাস নিয়ম মুছে ফেলার জন্য কীভাবে DeleteConditionalFormatRuleRequest ব্যবহার করতে হয় তা নিম্নলিখিত spreadsheets.batchUpdate পদ্ধতির কোড নমুনাটি দেখায়।

অনুরোধ প্রোটোকল নীচে দেখানো হয়েছে.

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 উপাদানগুলির একটি অ্যারে রয়েছে। একটি প্রদত্ত প্রতিক্রিয়া ক্ষেত্র ডিফল্ট মান সেট করা হলে, এটি প্রতিক্রিয়া থেকে বাদ দেওয়া হয়। অনুরোধটি BooleanRule এর type হিসাবে ConditionType ব্যবহার করে।

{
  "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 এ ছিল। অনুরোধটি BooleanRule এর type হিসাবে ConditionType ব্যবহার করে।

অনুরোধ প্রোটোকল নীচে দেখানো হয়েছে.

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