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

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

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

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

একটি সারিতে একটি শর্তসাপেক্ষ রঙের গ্রেডিয়েন্ট যোগ করুন

নিম্নলিখিত spreadsheets.batchUpdate পদ্ধতির কোড নমুনা দেখায় কিভাবে AddConditionalFormatRuleRequest ব্যবহার করে একটি শিটের ১০ এবং ১১ নম্বর সারিগুলির জন্য নতুন গ্রেডিয়েন্ট শর্তসাপেক্ষ বিন্যাস নিয়ম স্থাপন করতে হয়। প্রথম নিয়মে বলা হয়েছে যে সেই সারির কোষগুলির পটভূমির রঙগুলি তাদের মান অনুসারে সেট করা হয়েছে। সারির সর্বনিম্ন মানটি গাঢ় লাল রঙে রঙ করা হয়েছে, যখন সর্বোচ্চ মানটি উজ্জ্বল সবুজ রঙে রঙ করা হয়েছে। অন্যান্য মানের রঙ ইন্টারপোলেট করা হয়েছে। দ্বিতীয় নিয়মটিও একই কাজ করে, তবে নির্দিষ্ট সংখ্যাসূচক মানগুলির সাথে গ্রেডিয়েন্ট এন্ডপয়েন্ট (এবং বিভিন্ন রঙ) নির্ধারণ করে। অনুরোধটি type হিসাবে sheets.InterpolationPointType ব্যবহার করে।

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

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

অনুরোধের পরে, প্রয়োগকৃত বিন্যাস নিয়মটি শীটটি আপডেট করে। যেহেতু ১১ নম্বর সারিতে গ্রেডিয়েন্টের সর্বোচ্চ বিন্দু 256 তে সেট করা আছে, তাই এর উপরে থাকা যেকোনো মানের সর্বোচ্চ বিন্দুর রঙ হবে:

গ্রেডিয়েন্ট ফর্ম্যাট রেসিপি ফলাফল যোগ করুন

রেঞ্জের একটি সেটে একটি শর্তসাপেক্ষ বিন্যাস নিয়ম যোগ করুন

নিম্নলিখিত spreadsheets.batchUpdate পদ্ধতির কোড নমুনাটি দেখায় কিভাবে AddConditionalFormatRuleRequest ব্যবহার করে একটি শীটের কলাম A এবং C এর জন্য একটি নতুন শর্তসাপেক্ষ বিন্যাস নিয়ম স্থাপন করতে হয়। নিয়মটি বলে যে 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 পদ্ধতির কোড নমুনা দেখায় কিভাবে AddConditionalFormatRuleRequest ব্যবহার করে একটি শীটে A1:D5 পরিসরের জন্য নতুন শর্তসাপেক্ষ বিন্যাস নিয়ম স্থাপন করতে হয়, যা সেই কোষগুলির তারিখ এবং পাঠ্য মানের উপর ভিত্তি করে তৈরি করা হয়। যদি পাঠ্যটিতে "Cost" (কেস-অসংবেদনশীল) স্ট্রিং থাকে, তাহলে প্রথম নিয়মটি কোষের পাঠ্যকে বোল্ড হিসাবে সেট করে। যদি কোষে গত সপ্তাহের আগে একটি তারিখ থাকে, তাহলে দ্বিতীয় নিয়মটি কোষের পাঠ্যকে ইটালিক হিসাবে সেট করে এবং নীল রঙ করে। অনুরোধটি 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 পদ্ধতির কোড নমুনাটি দেখায় কিভাবে AddConditionalFormatRuleRequest ব্যবহার করে একটি শীটে B5:B8 পরিসরের জন্য একটি নতুন শর্তসাপেক্ষ বিন্যাস নিয়ম স্থাপন করতে হয়, একটি কাস্টম সূত্রের উপর ভিত্তি করে। নিয়মটি 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
      }
    }
  ]
}

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

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

একটি শর্তসাপেক্ষ বিন্যাস নিয়ম মুছুন

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

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

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 রিসোর্স থাকে, যার মধ্যে একটি SheetProperties উপাদান এবং একটি ConditionalFormatRule উপাদান সহ Sheet অবজেক্টের একটি অ্যারে থাকে। যদি একটি প্রদত্ত প্রতিক্রিয়া ক্ষেত্র ডিফল্ট মানতে সেট করা থাকে, তবে এটি প্রতিক্রিয়া থেকে বাদ দেওয়া হয়। অনুরোধটি 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
              }
            }
          }
        }
      }
    }
  ]
}