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

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

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

এই উদাহরণগুলিতে, 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 মেথডের কোড স্যাম্পলটি দেখায় কিভাবে একটি শীটের A এবং C কলামের জন্য একটি নতুন কন্ডিশনাল ফরম্যাটিং নিয়ম স্থাপন করতে AddConditionalFormatRuleRequest ব্যবহার করতে হয়। নিয়মটি বলে যে, যে সেলগুলোর মান ১০ বা তার কম, সেগুলোর ব্যাকগ্রাউন্ড রঙ গাঢ় লালে পরিবর্তন করা হবে। নিয়মটি ইনডেক্স ০-তে যুক্ত করা হয়, তাই এটি অন্যান্য ফরম্যাটিং নিয়মের চেয়ে অগ্রাধিকার পায়। অনুরোধটিতে 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 ব্যবহার করতে হয়। যদি টেক্সটটিতে "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
      }
    }
  ]
}

অনুরোধের পরে, প্রয়োগ করা ফরম্যাট নিয়মটি শীটটি আপডেট করে। এই উদাহরণে, বর্তমান তারিখ হল ৯/২৬/২০১৬:

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

একটি রেঞ্জে কাস্টম ফর্মুলা নিয়ম যোগ করুন

নিম্নলিখিত spreadsheets.batchUpdate মেথডের কোড স্যাম্পলটি দেখায় কিভাবে একটি কাস্টম ফর্মুলার উপর ভিত্তি করে, একটি শীটের B5:B8 রেঞ্জের জন্য একটি নতুন কন্ডিশনাল ফরম্যাটিং রুল স্থাপন করতে AddConditionalFormatRuleRequest ব্যবহার করতে হয়। এই রুলটি A এবং B কলামের সেলের গুণফল গণনা করে। যদি গুণফল ১২০-এর বেশি হয়, তাহলে সেলের টেক্সট বোল্ড এবং ইটালিক্সে সেট করা হয়। এই রিকোয়েস্টে 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 মেথডের কোড নমুনাটি দেখায় কিভাবে SHEET_ID দ্বারা নির্দিষ্ট শীটে ইনডেক্স 0 সহ কন্ডিশনাল ফরম্যাটিং রুলটি মুছে ফেলার জন্য DeleteConditionalFormatRuleRequest ব্যবহার করতে হয়।

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

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 রেঞ্জের মধ্যে নির্দিষ্ট করা হুবহু টেক্সট ("Total Cost") থাকা সেলগুলোকে ফরম্যাট করে। প্রথম অনুরোধের স্থানান্তরটি দ্বিতীয়টি শুরু হওয়ার আগেই সম্পন্ন হয়, তাই দ্বিতীয় অনুরোধটি সেই রুলটিকে প্রতিস্থাপন করছে যা মূলত ইনডেক্স 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
              }
            }
          }
        }
      }
    }
  ]
}