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

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

  • একটি নির্দিষ্ট থ্রেশহোল্ডের উপরে কোষগুলি হাইলাইট করুন (উদাহরণস্বরূপ, $2,000 এর বেশি লেনদেনের জন্য বোল্ড টেক্সট ব্যবহার করে)।
  • কোষগুলিকে এমনভাবে ফর্ম্যাট করুন যাতে তাদের রঙ তাদের মানের সাথে পরিবর্তিত হয় (উদাহরণস্বরূপ, $2,000 এর বেশি পরিমাণ বৃদ্ধি পেলে আরও তীব্র লাল পটভূমি প্রয়োগ করা)।
  • অন্যান্য কোষের বিষয়বস্তুর উপর ভিত্তি করে কোষগুলিকে গতিশীলভাবে বিন্যাস করুন (উদাহরণস্বরূপ, "বাজারে সময়" ক্ষেত্রটি 90 দিনের চেয়ে বেশি এমন সম্পত্তির ঠিকানা হাইলাইট করা)।

আপনি এমনকি কোষগুলিকে তাদের মানের উপর ভিত্তি করে এবং অন্যান্য কোষের মানের উপর ভিত্তি করে ফর্ম্যাট করতে পারেন। উদাহরণস্বরূপ, আপনি পরিসরের মধ্যম মানের তুলনা করে তাদের মানের উপর ভিত্তি করে বিভিন্ন কোষের ফর্ম্যাট করতে পারেন:

গড় বয়সের উপরে বা নীচের মানগুলিকে হাইলাইট করার জন্য বিন্যাস।

চিত্র ১. মধ্যমা বয়সের উপরে বা নীচের মানগুলিকে হাইলাইট করার জন্য বিন্যাসকরণ।

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

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

শর্তসাপেক্ষ বিন্যাসকরণ বিধি ব্যবহার করে প্রকাশ করা হয়। প্রতিটি স্প্রেডশিট এই নিয়মগুলির একটি তালিকা সংরক্ষণ করে এবং তালিকায় প্রদর্শিত ক্রমে একই ক্রমে প্রয়োগ করে। Google Sheets API আপনাকে এই বিন্যাসকরণ বিধিগুলি যোগ করতে, আপডেট করতে এবং মুছে ফেলতে দেয়।

প্রতিটি নিয়ম একটি লক্ষ্য পরিসর, নিয়মের ধরণ, নিয়মটি ট্রিগার করার শর্তাবলী এবং প্রয়োগ করার জন্য যেকোনো ফর্ম্যাটিং নির্দিষ্ট করে।

লক্ষ্য পরিসর — এটি একটি একক কোষ, একাধিক কোষের পরিসর, অথবা একাধিক পরিসর হতে পারে।

নিয়মের ধরণ — নিয়মের দুটি বিভাগ রয়েছে:

নিম্নলিখিত বিভাগগুলিতে বিস্তারিতভাবে বর্ণনা করা হয়েছে, এই নিয়মগুলির প্রতিটি ধরণের জন্য মূল্যায়ন করা শর্তাবলী এবং আপনি যে ফর্ম্যাটগুলি প্রয়োগ করতে পারেন তা আলাদা।

বুলিয়ান নিয়ম

একটি BooleanRule একটি নির্দিষ্ট ফর্ম্যাট প্রয়োগ করতে হবে কিনা তা নির্ধারণ করে, একটি BooleanCondition এর উপর ভিত্তি করে যা true না false মূল্যায়ন করে। একটি বুলিয়ান নিয়ম নিম্নলিখিত রূপ নেয়:

{
  "condition": {
    object(BooleanCondition)
  },
  "format": {
    object(CellFormat)
  },
}

শর্তটি বিল্ট-ইন ConditionType ব্যবহার করতে পারে, অথবা এটি আরও জটিল মূল্যায়নের জন্য একটি কাস্টম সূত্র ব্যবহার করতে পারে।

অন্তর্নির্মিত প্রকারগুলি আপনাকে সংখ্যাসূচক থ্রেশহোল্ড, পাঠ্য তুলনা, অথবা একটি ঘর পূর্ণ কিনা তা অনুসারে ফর্ম্যাটিং প্রয়োগ করতে দেয়। উদাহরণস্বরূপ, NUMBER_GREATER মানে ঘরের মান অবশ্যই শর্তের মানের চেয়ে বেশি হতে হবে। নিয়মগুলি সর্বদা লক্ষ্য ঘরের বিরুদ্ধে মূল্যায়ন করা হয়।

কাস্টম সূত্র হল একটি বিশেষ শর্তের ধরণ যা আপনাকে একটি ইচ্ছামত এক্সপ্রেশন অনুসারে ফর্ম্যাটিং প্রয়োগ করতে দেয়, যা কেবল লক্ষ্য কক্ষ নয়, যেকোনো কক্ষের মূল্যায়নের অনুমতি দেয়। শর্তের সূত্রটি অবশ্যই true হিসাবে মূল্যায়ন করতে হবে।

বুলিয়ান নিয়ম দ্বারা প্রয়োগ করা বিন্যাস নির্ধারণ করতে, আপনি CellFormat ধরণের একটি উপসেট ব্যবহার করে সংজ্ঞায়িত করতে পারেন:

  • ঘরের লেখাটি বোল্ড, ইটালিক, নাকি স্ট্রাইকথ্রু।
  • ঘরের টেক্সটের রঙ।
  • ঘরের পটভূমির রঙ।

গ্রেডিয়েন্ট নিয়ম

একটি GradientRule রঙের একটি পরিসর নির্ধারণ করে যা বিভিন্ন মানের সাথে সঙ্গতিপূর্ণ। একটি গ্রেডিয়েন্ট নিয়ম নিম্নলিখিত রূপ নেয়:

{
  "minpoint": {
    object(InterpolationPoint)
  },
  "midpoint": {
    object(InterpolationPoint)
  },
  "maxpoint": {
    object(InterpolationPoint)
  },
}

প্রতিটি InterpolationPoint একটি রঙ এবং তার সংশ্লিষ্ট মান নির্ধারণ করে। তিনটি বিন্দুর একটি সেট একটি রঙের গ্রেডিয়েন্ট নির্ধারণ করে।

শর্তসাপেক্ষ বিন্যাসের নিয়মগুলি পরিচালনা করুন

শর্তসাপেক্ষ বিন্যাস নিয়ম তৈরি, পরিবর্তন বা মুছে ফেলার জন্য, উপযুক্ত অনুরোধের ধরণ সহ spreadsheets.batchUpdate পদ্ধতিটি ব্যবহার করুন:

  • AddConditionalFormatRuleRequest ব্যবহার করে প্রদত্ত সূচীতে তালিকায় নিয়ম যোগ করুন।

  • UpdateConditionalFormatRuleRequest ব্যবহার করে প্রদত্ত সূচীতে তালিকার নিয়মগুলি প্রতিস্থাপন বা পুনর্বিন্যাস করুন।

  • DeleteConditionalFormatRuleRequest ব্যবহার করে প্রদত্ত সূচীর তালিকা থেকে নিয়মগুলি সরান।

উদাহরণ

নিচের উদাহরণটি দেখায় কিভাবে এই পৃষ্ঠার উপরে স্ক্রিনশটে দেখানো শর্তসাপেক্ষ বিন্যাস তৈরি করতে হয়। অতিরিক্ত উদাহরণের জন্য, শর্তসাপেক্ষ বিন্যাস নমুনা পৃষ্ঠাটি দেখুন।

অ্যাপস স্ক্রিপ্ট

শিটস/এপিআই/স্প্রেডশিট_স্নিপেটস.জিএস
/**
 * conditional formatting
 * @param {string} spreadsheetId spreadsheet ID
 * @returns {*} spreadsheet
 */
Snippets.prototype.conditionalFormatting = (spreadsheetId) => {
  try {
    const myRange = Sheets.newGridRange();
    myRange.sheetId = 0;
    myRange.startRowIndex = 0;
    myRange.endRowIndex = 11;
    myRange.startColumnIndex = 0;
    myRange.endColumnIndex = 4;

    // Request 1
    const rule1ConditionalValue = Sheets.newConditionValue();
    rule1ConditionalValue.userEnteredValue = "=GT($D2,median($D$2:$D$11))";

    const rule1ConditionFormat = Sheets.newCellFormat();
    rule1ConditionFormat.textFormat = Sheets.newTextFormat();
    rule1ConditionFormat.textFormat.foregroundColor = Sheets.newColor();
    rule1ConditionFormat.textFormat.foregroundColor.red = 0.8;

    const rule1Condition = Sheets.newBooleanCondition();
    rule1Condition.type = "CUSTOM_FORMULA";
    rule1Condition.values = [rule1ConditionalValue];

    const rule1BooleanRule = Sheets.newBooleanRule();
    rule1BooleanRule.condition = rule1Condition;
    rule1BooleanRule.format = rule1ConditionFormat;

    const rule1 = Sheets.newConditionalFormatRule();
    rule1.ranges = [myRange];
    rule1.booleanRule = rule1BooleanRule;

    const request1 = Sheets.newRequest();
    const addConditionalFormatRuleRequest1 =
      Sheets.newAddConditionalFormatRuleRequest();
    addConditionalFormatRuleRequest1.rule = rule1;
    addConditionalFormatRuleRequest1.index = 0;
    request1.addConditionalFormatRule = addConditionalFormatRuleRequest1;

    // Request 2
    const rule2ConditionalValue = Sheets.newConditionValue();
    rule2ConditionalValue.userEnteredValue = "=LT($D2,median($D$2:$D$11))";

    const rule2ConditionFormat = Sheets.newCellFormat();
    rule2ConditionFormat.textFormat = Sheets.newTextFormat();
    rule2ConditionFormat.textFormat.foregroundColor = Sheets.newColor();
    rule2ConditionFormat.textFormat.foregroundColor.red = 1;
    rule2ConditionFormat.textFormat.foregroundColor.green = 0.4;
    rule2ConditionFormat.textFormat.foregroundColor.blue = 0.4;

    const rule2Condition = Sheets.newBooleanCondition();
    rule2Condition.type = "CUSTOM_FORMULA";
    rule2Condition.values = [rule2ConditionalValue];

    const rule2BooleanRule = Sheets.newBooleanRule();
    rule2BooleanRule.condition = rule2Condition;
    rule2BooleanRule.format = rule2ConditionFormat;

    const rule2 = Sheets.newConditionalFormatRule();
    rule2.ranges = [myRange];
    rule2.booleanRule = rule2BooleanRule;

    const request2 = Sheets.newRequest();
    const addConditionalFormatRuleRequest2 =
      Sheets.newAddConditionalFormatRuleRequest();
    addConditionalFormatRuleRequest2.rule = rule2;
    addConditionalFormatRuleRequest2.index = 0;
    request2.addConditionalFormatRule = addConditionalFormatRuleRequest2;

    // Batch send the requests
    const requests = [request1, request2];
    const batchUpdate = Sheets.newBatchUpdateSpreadsheetRequest();
    batchUpdate.requests = requests;
    const response = Sheets.Spreadsheets.batchUpdate(
      batchUpdate,
      spreadsheetId,
    );
    return response;
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log("Failed with error %s", err.message);
  }
};

জাভা

শীট/স্নিপেট/src/main/java/ConditionalFormatting.java
import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.sheets.v4.Sheets;
import com.google.api.services.sheets.v4.SheetsScopes;
import com.google.api.services.sheets.v4.model.AddConditionalFormatRuleRequest;
import com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetRequest;
import com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetResponse;
import com.google.api.services.sheets.v4.model.BooleanCondition;
import com.google.api.services.sheets.v4.model.BooleanRule;
import com.google.api.services.sheets.v4.model.CellFormat;
import com.google.api.services.sheets.v4.model.Color;
import com.google.api.services.sheets.v4.model.ConditionValue;
import com.google.api.services.sheets.v4.model.ConditionalFormatRule;
import com.google.api.services.sheets.v4.model.GridRange;
import com.google.api.services.sheets.v4.model.Request;
import com.google.api.services.sheets.v4.model.TextFormat;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/* Class to demonstrate the use of Spreadsheet Conditional Formatting API */
public class ConditionalFormatting {
  /**
   * Create conditional formatting.
   *
   * @param spreadsheetId - Id of the spreadsheet.
   * @return updated changes count.
   * @throws IOException - if credentials file not found.
   */
  public static BatchUpdateSpreadsheetResponse conditionalFormat(String spreadsheetId)
      throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(Collections.singleton(SheetsScopes.SPREADSHEETS));
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
        credentials);

    // Create the sheets API client
    Sheets service = new Sheets.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Sheets samples")
        .build();

    List<GridRange> ranges = Collections.singletonList(new GridRange()
        .setSheetId(0)
        .setStartRowIndex(1)
        .setEndRowIndex(11)
        .setStartColumnIndex(0)
        .setEndColumnIndex(4)
    );
    List<Request> requests = Arrays.asList(
        new Request().setAddConditionalFormatRule(new AddConditionalFormatRuleRequest()
            .setRule(new ConditionalFormatRule()
                .setRanges(ranges)
                .setBooleanRule(new BooleanRule()
                    .setCondition(new BooleanCondition()
                        .setType("CUSTOM_FORMULA")
                        .setValues(Collections.singletonList(
                            new ConditionValue().setUserEnteredValue(
                                "=GT($D2,median($D$2:$D$11))")
                        ))
                    )
                    .setFormat(new CellFormat().setTextFormat(
                        new TextFormat().setForegroundColor(
                            new Color().setRed(0.8f))
                    ))
                )
            )
            .setIndex(0)
        ),
        new Request().setAddConditionalFormatRule(new AddConditionalFormatRuleRequest()
            .setRule(new ConditionalFormatRule()
                .setRanges(ranges)
                .setBooleanRule(new BooleanRule()
                    .setCondition(new BooleanCondition()
                        .setType("CUSTOM_FORMULA")
                        .setValues(Collections.singletonList(
                            new ConditionValue().setUserEnteredValue(
                                "=LT($D2,median($D$2:$D$11))")
                        ))
                    )
                    .setFormat(new CellFormat().setBackgroundColor(
                        new Color().setRed(1f).setGreen(0.4f).setBlue(0.4f)
                    ))
                )
            )
            .setIndex(0)
        )
    );

    BatchUpdateSpreadsheetResponse result = null;
    try {
      // Execute the requests.
      BatchUpdateSpreadsheetRequest body =
          new BatchUpdateSpreadsheetRequest()
              .setRequests(requests);
      result = service.spreadsheets()
          .batchUpdate(spreadsheetId, body)
          .execute();
      System.out.printf("%d cells updated.", result.getReplies().size());
    } catch (GoogleJsonResponseException e) {
      // TODO(developer) - handle error appropriately
      GoogleJsonError error = e.getDetails();
      if (error.getCode() == 404) {
        System.out.printf("Spreadsheet not found with id '%s'.\n", spreadsheetId);
      } else {
        throw e;
      }
    }
    return result;
  }
}

জাভাস্ক্রিপ্ট

শীট/স্নিপেট/শীট_কন্ডিশনাল_ফরম্যাটিং.জেএস
function conditionalFormatting(spreadsheetId, callback) {
  const myRange = {
    sheetId: 0,
    startRowIndex: 1,
    endRowIndex: 11,
    startColumnIndex: 0,
    endColumnIndex: 4,
  };
  const requests = [{
    addConditionalFormatRule: {
      rule: {
        ranges: [myRange],
        booleanRule: {
          condition: {
            type: 'CUSTOM_FORMULA',
            values: [{userEnteredValue: '=GT($D2,median($D$2:$D$11))'}],
          },
          format: {
            textFormat: {foregroundColor: {red: 0.8}},
          },
        },
      },
      index: 0,
    },
  }, {
    addConditionalFormatRule: {
      rule: {
        ranges: [myRange],
        booleanRule: {
          condition: {
            type: 'CUSTOM_FORMULA',
            values: [{userEnteredValue: '=LT($D2,median($D$2:$D$11))'}],
          },
          format: {
            backgroundColor: {red: 1, green: 0.4, blue: 0.4},
          },
        },
      },
      index: 0,
    },
  }];

  const body = {
    requests,
  };
  try {
    gapi.client.sheets.spreadsheets.batchUpdate({
      spreadsheetId: spreadsheetId,
      resource: body,
    }).then((response) => {
      const result = response.result;
      console.log(`${result.replies.length} cells updated.`);
      if (callback) callback(response);
    });
  } catch (err) {
    document.getElementById('content').innerText = err.message;
    return;
  }
}

নোড.জেএস

শীট/স্নিপেট/শীট_কন্ডিশনাল_ফরম্যাটিং.জেএস
import {GoogleAuth} from 'google-auth-library';
import {google} from 'googleapis';

/**
 * Applies conditional formatting to a spreadsheet.
 * @param {string} spreadsheetId The ID of the spreadsheet.
 * @return {Promise<object>} The response from the batch update.
 */
async function conditionalFormatting(spreadsheetId) {
  // Authenticate with Google and get an authorized client.
  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/spreadsheets',
  });

  // Create a new Sheets API client.
  const service = google.sheets({version: 'v4', auth});

  // The range to apply the conditional formatting to.
  const myRange = {
    sheetId: 0,
    startRowIndex: 1,
    endRowIndex: 11,
    startColumnIndex: 0,
    endColumnIndex: 4,
  };

  // The requests to apply conditional formatting.
  const requests = [
    {
      addConditionalFormatRule: {
        rule: {
          ranges: [myRange],
          booleanRule: {
            condition: {
              type: 'CUSTOM_FORMULA',
              values: [{userEnteredValue: '=GT($D2,median($D$2:$D$11))'}],
            },
            format: {
              textFormat: {foregroundColor: {red: 0.8}},
            },
          },
        },
        index: 0,
      },
    },
    {
      addConditionalFormatRule: {
        rule: {
          ranges: [myRange],
          booleanRule: {
            condition: {
              type: 'CUSTOM_FORMULA',
              values: [{userEnteredValue: '=LT($D2,median($D$2:$D$11))'}],
            },
            format: {
              backgroundColor: {red: 1, green: 0.4, blue: 0.4},
            },
          },
        },
        index: 0,
      },
    },
  ];

  // Create the batch update request.
  const resource = {
    requests,
  };

  // Execute the batch update request.
  const response = await service.spreadsheets.batchUpdate({
    spreadsheetId,
    resource,
  });
  console.log(`${response.data.replies.length} cells updated.`);
  return response;
}

পিএইচপি

শীট/স্নিপেট/src/স্প্রেডশিটকন্ডিশনালফরম্যাটিং.php
<?php
use Google\Client;
use Google\Service\Drive;
use Google\Service\Sheets\BatchUpdateSpreadsheetRequest;
use Google\Service\Sheets\Request;

function conditionalFormatting($spreadsheetId)
    {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
        $client = new Google\Client();
        $client->useApplicationDefaultCredentials();
        $client->addScope(Google\Service\Drive::DRIVE);
        $service = new Google_Service_Sheets($client);

        try{
            $myRange = [
                'sheetId' => 0,
                'startRowIndex' => 1,
                'endRowIndex' => 11,
                'startColumnIndex' => 0,
                'endColumnIndex' => 4,
            ];
            //execute the request
            $requests = [
                new Google_Service_Sheets_Request([
                'addConditionalFormatRule' => [
                    'rule' => [
                        'ranges' => [ $myRange ],
                        'booleanRule' => [
                            'condition' => [
                                'type' => 'CUSTOM_FORMULA',
                                'values' => [ [ 'userEnteredValue' => '=GT($D2,median($D$2:$D$11))' ] ]
                            ],
                            'format' => [
                                'textFormat' => [ 'foregroundColor' => [ 'red' => 0.8 ] ]
                                ]
                                ]
                            ],
                            'index' => 0
                            ]
                        ]),
                        new Google_Service_Sheets_Request([
                'addConditionalFormatRule' => [
                    'rule' => [
                        'ranges' => [ $myRange ],
                        'booleanRule' => [
                            'condition' => [
                                'type' => 'CUSTOM_FORMULA',
                                'values' => [ [ 'userEnteredValue' => '=LT($D2,median($D$2:$D$11))' ] ]
                            ],
                            'format' => [
                                'backgroundColor' => [ 'red' => 1, 'green' => 0.4, 'blue' => 0.4 ]
                            ]
                            ]
                        ],
                    'index' => 0
                ]
                ])
        ];

        $batchUpdateRequest = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest([
            'requests' => $requests
        ]);
        $response = $service->spreadsheets->batchUpdate($spreadsheetId, $batchUpdateRequest);
        printf("%d cells updated.", count($response->getReplies()));
        return $response;
    }
    catch(Exception $e) {
        // TODO(developer) - handle error appropriately
        echo 'Message: ' .$e->getMessage();
    }
}

পাইথন

শীট/স্নিপেট/শীট_কন্ডিশনাল_ফরম্যাটিং.পি
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def conditional_formatting(spreadsheet_id):
  """
  Creates the batch_update the user has access to.
  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()
  # pylint: disable=maybe-no-member
  try:
    service = build("sheets", "v4", credentials=creds)

    my_range = {
        "sheetId": 0,
        "startRowIndex": 1,
        "endRowIndex": 11,
        "startColumnIndex": 0,
        "endColumnIndex": 4,
    }
    requests = [
        {
            "addConditionalFormatRule": {
                "rule": {
                    "ranges": [my_range],
                    "booleanRule": {
                        "condition": {
                            "type": "CUSTOM_FORMULA",
                            "values": [
                                {
                                    "userEnteredValue": (
                                        "=GT($D2,median($D$2:$D$11))"
                                    )
                                }
                            ],
                        },
                        "format": {
                            "textFormat": {"foregroundColor": {"red": 0.8}}
                        },
                    },
                },
                "index": 0,
            }
        },
        {
            "addConditionalFormatRule": {
                "rule": {
                    "ranges": [my_range],
                    "booleanRule": {
                        "condition": {
                            "type": "CUSTOM_FORMULA",
                            "values": [
                                {
                                    "userEnteredValue": (
                                        "=LT($D2,median($D$2:$D$11))"
                                    )
                                }
                            ],
                        },
                        "format": {
                            "backgroundColor": {
                                "red": 1,
                                "green": 0.4,
                                "blue": 0.4,
                            }
                        },
                    },
                },
                "index": 0,
            }
        },
    ]
    body = {"requests": requests}
    response = (
        service.spreadsheets()
        .batchUpdate(spreadsheetId=spreadsheet_id, body=body)
        .execute()
    )
    print(f"{(len(response.get('replies')))} cells updated.")
    return response

  except HttpError as error:
    print(f"An error occurred: {error}")
    return error


if __name__ == "__main__":
  # Pass: spreadsheet_id
  conditional_formatting("1CM29gwKIzeXsAppeNwrc8lbYaVMmUclprLuLYuHog4k")

রুবি

শিট/স্নিপেট/লিব/স্প্রেডশিট_স্নিপেটস.আরবি
my_range = {
  sheet_id:           0,
  start_row_index:    1,
  end_row_index:      11,
  start_column_index: 0,
  end_column_index:   4
}
requests = [{
  add_conditional_format_rule: {
    rule:  {
      ranges:       [my_range],
      boolean_rule: {
        condition: {
          type:   'CUSTOM_FORMULA',
          values: [{ user_entered_value: '=GT($D2,median($D$2:$D$11))' }]
        },
        format:    {
          text_format: { foreground_color: { red: 0.8 } }
        }
      }
    },
    index: 0
  }
}, {
  add_conditional_format_rule: {
    rule:  {
      ranges:       [my_range],
      boolean_rule: {
        condition: {
          type:   'CUSTOM_FORMULA',
          values: [{ user_entered_value: '=LT($D2,median($D$2:$D$11))' }]
        },
        format:    {
          background_color: { red: 1, green: 0.4, blue: 0.4 }
        }
      }
    },
    index: 0
  }
}]
body = {
  requests: requests
}
batch_update = Google::Apis::SheetsV4::BatchUpdateSpreadsheetRequest.new
batch_update.requests = requests
result = service.batch_update_spreadsheet(spreadsheet_id, batch_update)
puts "#{result.replies.length} cells updated."